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 8ced3bea..c4a6f16d 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 d2e0871f..c517ce0b 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 b5268538..cd27b1d3 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 33f003f0..e97ed40a 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 62371754..5787b61f 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 bf514785..55680493 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 6eb9ac7a..9ab4a9ff 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 b0ef57bb..cc6ac154 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 41201dc8..bc1514d4 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 261a205a..d826c17a 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 6a000746..76c392c1 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 926fc36d..a198c33a 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 847d5acc..7ddbae6d 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 b9b83f3c..4a82b1a8 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 bd791852..e0eceb74 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 632a5c17..0c950faa 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 758455e0..1634deed 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 bbf6c841..82608833 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 3c60bfb2..cff78e00 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 1a427406..89c1b252 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 c6aa2eb7..d6c069d6 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 c206a246..f6091c35 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 697d305f..3203bff9 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 891bb61b..d8b968fe 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 f8566b83..194d518e 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 b212bdc1..2af49797 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 b1645aca..9f737319 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 05ae1c91..874bb982 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 a1631fd2..cffacbb7 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 86918cad..835b113f 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 9b5bc2fd..7addc8f6 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 c89d7b51..f51beb6a 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 e5463da3..b4917aca 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 3708e23e..95c2dfa3 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 2e5d4ae4..18fe7014 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 48389338..ca49d2e3 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 39869334..ef5b792f 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 26178427..cdecfbf1 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 86b7488a..300846c1 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 c0ab9c06..f96d5095 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 b8907c40..41c5f3b5 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 e3c24e6b..1ee2a5ea 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 c517ce0b..ea71a8ae 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 43f132f0..443f1d8b 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 c0ab9c06..f96d5095 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 6863a1b3..2ff3a07e 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 e3c24e6b..1ee2a5ea 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 cd27b1d3..2b8a42b0 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 40824129..f7f5c528 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 c0ab9c06..f96d5095 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 8fef2c50..922a943d 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 e3c24e6b..1ee2a5ea 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 e97ed40a..17302fc8 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 d8a97d41..8c7a86f6 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 c0ab9c06..f96d5095 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 f2d1ad9c..8b58b7cd 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 e3c24e6b..1ee2a5ea 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 5787b61f..668b701a 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 c4d51f14..47ca099d 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 c0ab9c06..f96d5095 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 073a73f5..ad77cc25 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 e3c24e6b..1ee2a5ea 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 55680493..d3881ed7 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 3c92e5d7..e72bfc93 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 c0ab9c06..f96d5095 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 03f58a98..1fa67161 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 e3c24e6b..1ee2a5ea 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 9ab4a9ff..6523bc66 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 7e465932..446c65cd 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 c0ab9c06..f96d5095 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 a1b6ce3d..55228169 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 e3c24e6b..1ee2a5ea 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 cc6ac154..85087abe 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 0a94ca07..14cf289c 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 c0ab9c06..f96d5095 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 ecf9ff9c..b90265da 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 e3c24e6b..1ee2a5ea 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 bc1514d4..dfa19cd6 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 aae6101f..c18b0d7a 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 c0ab9c06..f96d5095 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 98bc58e6..53a213a4 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 e3c24e6b..1ee2a5ea 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 d826c17a..08c94110 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 f297363e..e0071b3b 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 c0ab9c06..f96d5095 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 fcf991a8..69fdff2b 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 e3c24e6b..1ee2a5ea 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 76c392c1..840f8389 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 65f59a20..e2ac41b3 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 c0ab9c06..f96d5095 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 42978107..11a48eb3 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 e3c24e6b..1ee2a5ea 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 a198c33a..27204b67 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 46680094..9c60fb2c 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 c0ab9c06..f96d5095 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 4f8dd92a..04b7eb9d 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 e3c24e6b..1ee2a5ea 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 7ddbae6d..f63d13c1 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 1b8188be..8208169f 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 c0ab9c06..f96d5095 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 0c0150f2..3c2d562a 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 e3c24e6b..1ee2a5ea 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 4a82b1a8..e7bb0096 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 d92efeab..8d070a32 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 c7b6554a..74076680 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 2eb923df..b52f70a8 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 ab859db4..fdfe1672 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 458c872e..44d4e196 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 c0dd9c74..53de88ee 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 0c950faa..5446cce3 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 3b91d983..a2c259fd 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 e1f6fe17..f19c2aa8 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 48e4730a..0d533195 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 af7d895a..1e1e7be8 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 ab859db4..fdfe1672 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 a055ba51..2982f0fa 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 990c5d92..4ab3196b 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 82608833..c8c4f4ee 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 5682ae0e..0c1d4705 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 89c1b252..eb397924 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 08e35195..ba9d1824 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 c0ab9c06..f96d5095 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 48f48051..b1ca6d13 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 e3c24e6b..1ee2a5ea 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 d6c069d6..aa05bc7b 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 9f0788f6..3cf606c1 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 c0ab9c06..f96d5095 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 796ed4ff..77080d72 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 e3c24e6b..1ee2a5ea 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 f6091c35..f3b78a01 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 6ba03286..b240665e 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 c0ab9c06..f96d5095 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 f0dcf78b..1d935f46 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 e3c24e6b..1ee2a5ea 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 3203bff9..43dd59a3 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 1a6be379..346fed48 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 c0ab9c06..f96d5095 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 4f832285..94695915 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 e3c24e6b..1ee2a5ea 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 d8b968fe..293b47c3 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 b8cfb745..b4147f9c 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 c0ab9c06..f96d5095 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 932b131b..f7cb1653 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 e3c24e6b..1ee2a5ea 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 194d518e..7a0dbe47 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 3e237a9c..ca38db79 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 c0ab9c06..f96d5095 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 9263ef21..520a2d79 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 e3c24e6b..1ee2a5ea 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 2af49797..26b657ed 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 b283d891..cca9adad 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 c0ab9c06..f96d5095 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 f975ccd0..9b052abb 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 e3c24e6b..1ee2a5ea 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 9f737319..755b5d50 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 ca3957a1..a74959da 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 c0ab9c06..f96d5095 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 b7626a87..4f675c3d 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 e3c24e6b..1ee2a5ea 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 874bb982..e7543e5f 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 bad0e66b..9c7bbc97 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 c0ab9c06..f96d5095 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 c86236b2..9a786632 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 e3c24e6b..1ee2a5ea 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 cffacbb7..89c2233f 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 e1d9f1d5..3080b891 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 c0ab9c06..f96d5095 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 63d887c0..636b2315 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 e3c24e6b..1ee2a5ea 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 835b113f..c24c4190 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 17e43964..8acd9386 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 c0ab9c06..f96d5095 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 18c00d21..c687f75f 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 e3c24e6b..1ee2a5ea 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 7addc8f6..3a0923b3 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 0be31f1e..1212f18b 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 c0ab9c06..f96d5095 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 0c1110c5..fe9a8a92 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 e3c24e6b..1ee2a5ea 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 f51beb6a..579599ac 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 5209ba28..7aded6b7 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 c0ab9c06..f96d5095 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 0300e01a..b5009f5f 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 e3c24e6b..1ee2a5ea 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 b4917aca..2fb7cb0a 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 8ea5e52e..65e655eb 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 c0ab9c06..f96d5095 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 2027783a..d4b3f134 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 e3c24e6b..1ee2a5ea 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 95c2dfa3..5e16e3e8 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 4f76f3a3..ad7649d7 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 c0ab9c06..f96d5095 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 a2b6e70a..9113ff61 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 e3c24e6b..1ee2a5ea 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 18fe7014..9a24b52e 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 bc1ea899..115fe759 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 c0ab9c06..f96d5095 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 a5e0e50a..abd7a28f 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 e3c24e6b..1ee2a5ea 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 ca49d2e3..20b59fb3 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 e0eceb74..93bbd46a 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 26e571d6..357baa47 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 8d1c4251..2ef00498 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 ba118ad5..4163251c 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 4066377b..3c5e280f 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 cc3cd043..f83ee2a0 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 d2d83d12..65b753df 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 596ef9b0..5309cee4 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 80115abf..05ee628a 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 d3d45d5d..85def55d 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 ec3be4a0..2674d06c 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 d299bd55..a08da4e0 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 9eedb58a..81ab8be6 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 94f2cce2..d66e04ce 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 6308371f..59d85d98 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 a64950ab..e773940b 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 4a70966d..a536e6e3 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 57525d67..313178e2 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 14e70d3b..25f942da 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 64979ee0..00345cfd 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 f9e5541a..03985750 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 e0fdd8a1..530331a4 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 250d511f..e5074b35 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 6e0e34cc..3abc01d7 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 7e156c53..e0a7b121 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 f712b19e..7873e5fa 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 8a02d495..061dc69c 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 5b554100..a20c795c 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 40a5ca58..dd369c61 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 4120d0ae..f1051be7 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 53ef1f5f..24582edb 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 84581aff..50ac46fb 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 0f1f53d6..f2d8189e 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 029c954c..c8d1ec91 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 7c13f4c6..87704b74 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 54de481e..391151e6 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 ae82430b..7d6f1e0d 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 76d4f856..11a9fabf 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 3e6abfc3..64cd093d 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 9b7d2274..2b4fbc83 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 84e30728..34e88350 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 f3e16de8..6851a6bd 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 7bebcdc3..2457979a 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 3223dddd..4a6186ca 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 5309cee4..17be5078 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 05ee628a..c291fb98 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 85def55d..64557fd6 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 2674d06c..bc4041f3 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 a08da4e0..9275783f 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 81ab8be6..ba3e36dc 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 d66e04ce..1b70040a 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 59d85d98..064072d7 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 e773940b..3147d5c5 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 a536e6e3..ec6b612f 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 313178e2..42f227bd 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 25f942da..31b2f25e 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 00345cfd..29857e77 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 03985750..4968e455 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 530331a4..da9b6115 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 3abc01d7..43ac5102 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 e0a7b121..8006ab2a 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 7873e5fa..cad840c7 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 061dc69c..c77f483f 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 a20c795c..6a4952f0 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 dd369c61..0a97635a 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 f1051be7..0f22ab50 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 24582edb..49a73561 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 50ac46fb..0ae40a51 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 f2d8189e..8f20e714 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 c8d1ec91..554926d4 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 87704b74..b62cd772 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 391151e6..0b586f32 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 7d6f1e0d..3ba9c344 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 11a9fabf..752242a1 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 64cd093d..e76e7021 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 2b4fbc83..2069edc6 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 34e88350..02c30f4b 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 e5074b35..4e2a1b5d 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 6851a6bd..f338cfca 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 2457979a..cbcda8f9 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 3e3247aa..f27fa192 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 7f6e80c3..7c7c6095 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 108e4316..a0264fc3 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 31639311..65410332 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 8ad2543f..33e07886 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 9c1a9d12..882e793c 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 57a7507e..cda6130a 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 65410332..1cbecc5d 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 4d33cf50..359bea30 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 882e793c..505912a5 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 cda6130a..dd1fae09 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 e0dec6b3..07ef3a40 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 505912a5..34064611 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 581f09b2..1c039b23 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 845508da..5871a51a 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 34064611..fc4e41bf 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 693b7ce2..e0a99c45 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 d9956c03..8810f3bb 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 dd1fae09..29aa1394 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 33e07886..ea34db57 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 fc4e41bf..af818d0e 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 70a6937b..f4a997f6 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 7361e891..d62dd14a 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 1536993b..533a7655 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 6ae85b55..dcc54268 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 419a778f..90020b24 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 1a75ccf1..b6f2f63f 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 94aa8908..1d417c46 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 cb86996f..47070665 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 73027519..e413eec9 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 8bd62a3f..4752786b 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 8c154143..61e3cb17 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 8f086be6..e0b46640 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 4ddd3a20..4446e736 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 18563e92..2090855d 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 4a036761..d2b15df1 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 3d1934d7..db76b8b9 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 298bf752..210b6b61 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 24e16229..11de7031 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 b1b479ad..fe929410 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 5624b49c..8a960f7a 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 4bd6021c..d576d176 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 3d6a2fe6..64beeed8 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 dcd1e0da..77d46640 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 90c704d3..88673fe1 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 9c48fd1e..b96eb1f3 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 6812b468..1eea09b8 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 97681934..c248811c 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 3649aefa..8dc2fa4d 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 6291b98d..418e23bf 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 6b5429fd..0156c408 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 f17bce41..768fb98e 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 29aa1394..60d2d8e2 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 ea34db57..b9cd1c49 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 af818d0e..261bb86a 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 7409bdcd..bc6041fd 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 f4a997f6..4d3c0608 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 d62dd14a..c7603e65 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 533a7655..fa7d9b93 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 dcc54268..16b62fe2 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 90020b24..70be2052 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 b6f2f63f..7a65388b 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 1d417c46..59fdb22b 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 47070665..0180260a 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 e413eec9..2f39a8ac 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 4752786b..c85609d7 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 61e3cb17..53ea939e 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 e0b46640..6a161578 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 fbb9bb09..7234e20f 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 4446e736..946f9fba 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 60d2d8e2..edb37e55 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 b40fefe0..53510009 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 e8954c05..349d651f 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 261bb86a..1f20541e 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 2090855d..7a90fd32 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 d2b15df1..83966332 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 db76b8b9..9f68e39b 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 210b6b61..40b47e11 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 11de7031..b7ff6a13 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 fe929410..ffeccbf5 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 8a960f7a..c77ca271 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 d576d176..774e863c 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 64beeed8..30f805ab 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 77d46640..20138097 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 88673fe1..288bb92f 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 b96eb1f3..768ddfd0 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 068feaa8..aee2f90f 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 1eea09b8..916f2ed5 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 c248811c..7c2f421f 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 8dc2fa4d..9b7772c5 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 edb37e55..1de55fc3 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 1cbecc5d..3717103b 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 b3928836..2c3313a2 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 c5a6f580..52d9e3cc 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 1f20541e..a5ac1ac9 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 d5b41ba1..577725d3 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 b12062e9..2ac5cdd1 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 2ac5cdd1..6b96f551 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 1de55fc3..9bead9e8 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 6b96f551..0e992660 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 52d9e3cc..e012c9a1 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 8ec1d978..ab9af71f 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 9bead9e8..e2790c63 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 3717103b..f1b9b7ac 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 b9cd1c49..0f567dd1 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 a5ac1ac9..9841c5a8 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 e2790c63..45df36f1 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 f1b9b7ac..06126e6e 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 a519bf4f..8a37a469 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 45df36f1..8a1c5f5c 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 06126e6e..5983a21f 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 9841c5a8..d861f7ff 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 8a1c5f5c..bf66789e 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 5983a21f..228d6974 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 d861f7ff..6532125a 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 bf66789e..89c95bd9 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 00000000..794ac39b --- /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 00000000..9106b2a3 --- /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 00000000..dd67942d --- /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 00000000..ac3a148a --- /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 00000000..cd510a02 --- /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 00000000..db1f39ce --- /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 00000000..dce67d86 --- /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 00000000..c8a8e684 --- /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 00000000..7f8c5cf2 --- /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 00000000..3e1127be --- /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 00000000..c1fd0d51 --- /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 00000000..96b8b0ff --- /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 89c95bd9..0e76a897 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 228d6974..ea989b0d 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 6532125a..247dbaad 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 0e76a897..12b2314d 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 ea989b0d..1a5b23da 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 0c3620b3..23d4b527 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 5a11fc24..bedfa70f 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 33e7da23..3e8a1b3d 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 ed1c4b32..b89cacbe 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 00000000..8580fc8d --- /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 00000000..9866dd23 --- /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 00000000..ee18f495 --- /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 00000000..20b9c612 --- /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 00000000..a0a5db9d --- /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 00000000..92efa3b3 --- /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 00000000..64d9ec9a --- /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 00000000..8c41ec12 --- /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 00000000..3abadae3 --- /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 00000000..8d03991a --- /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 00000000..18e7abdb --- /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 00000000..e61be657 --- /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 6833293e..255c8917 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 ab9af71f..4364f606 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 1e337266..1710f8f6 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 b125077f..8f9f4771 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 db8955b4..9dd9f605 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 57f48e52..2cedb076 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 9cbf2443..cbf71e33 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 637afe17..d51d9be8 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 c0e0a1fb..5ab24f09 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 00000000..8687c94b --- /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 7d7270f9..81e84c40 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 247dbaad..00000000 --- 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 12b2314d..4fb1860a 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 1a5b23da..896b98fa 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 3abadae3..109654bc 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 4fb1860a..155f4264 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 896b98fa..b5905f8d 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 109654bc..2b6004e1 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 155f4264..58cbf714 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 794ac39b..9a3608e2 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 96b8b0ff..6ea12479 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 58cbf714..b454bf8d 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 9a3608e2..a463c363 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 6ea12479..9c9cd5ac 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 b5905f8d..7c21c4ef 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 2c3313a2..0bc44e25 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 20b9c612..75600ece 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 e61be657..f5824959 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 8687c94b..0f1f3ca8 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 b454bf8d..10f3ab61 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 a463c363..1224e00c 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 9c9cd5ac..8920d6cb 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 00000000..6ed214df --- /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 10f3ab61..83ae5f76 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 7c21c4ef..25e05a97 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 83ae5f76..cc0e4710 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 1224e00c..e1727ce5 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 8920d6cb..0f08c42f 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 25e05a97..588ad046 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 2b6004e1..4078a936 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 cc0e4710..de7f2197 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 e1727ce5..677abfc4 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 0f08c42f..159e8f66 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 de7f2197..af141605 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 677abfc4..16bf994f 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 159e8f66..cc633c83 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 588ad046..4874793e 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 4078a936..59e8e6fd 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 af141605..ce7ad199 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 16bf994f..76e7c4dd 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 cc633c83..78599f29 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 6ed214df..7bf1dcf6 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 4874793e..f981e9dd 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 59e8e6fd..2cb8f56b 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 ce7ad199..b219d84c 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 76e7c4dd..4619cdea 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 78599f29..a9a14384 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 f981e9dd..895d9803 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 11f2598a..c4e062c9 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 0f567dd1..e443996c 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 02b3b7ba..2e86ffe6 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 b89cacbe..ad229857 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 75600ece..30392bd9 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 0f1f3ca8..25534d79 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 b219d84c..92342105 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 4619cdea..86aa4064 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 a9a14384..d3834b5e 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 895d9803..411e55c4 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 e443996c..98b5fffa 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 2cb8f56b..6edb1fda 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 18e7abdb..0df2d803 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 25534d79..f994c6aa 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 418e23bf..b42dc311 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 ba6a63f7..c1488c75 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 07b0d4f1..d03f762b 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 411e55c4..05c589ae 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 b42dc311..d78cb626 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 0d368110..e69ec370 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 92342105..a2f64df2 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 c9e173ed..e062273b 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 86aa4064..331e6ba9 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 d3834b5e..75e242c2 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 96284e48..d29a3112 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 8c55d2c7..3f368bdf 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 74e6105e..5fb7fbbf 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 331e6ba9..cac64de0 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 7bf1dcf6..9074b0d2 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 cac64de0..5ee4d404 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 5ee4d404..226c7c68 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 a2f64df2..281f570e 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 226c7c68..58758f61 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 75e242c2..d699e041 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 281f570e..6544e179 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 58758f61..a76b9f71 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 d699e041..c9057f2c 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 9074b0d2..274bb125 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 47dfeb72..51328a2d 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 6544e179..92eeb6cb 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 a76b9f71..5a1419b5 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 c9057f2c..d16b8c83 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 274bb125..cfdb61a6 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 05c589ae..4a8d4491 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 6edb1fda..ffa6f42f 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 d78cb626..7e4b3d47 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 c8e5aeda..13af6bcf 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 3f368bdf..832a8960 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 7e4b3d47..473e0735 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 13af6bcf..fd128071 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 510be84f..c8671212 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 832a8960..086c5df3 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 e661e0f6..2c8a2940 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 473e0735..3e201b25 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 5a1419b5..a37170ac 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 d16b8c83..cbd5a915 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 3e201b25..1e6771fc 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 cbd5a915..82f2a145 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 cfdb61a6..7aa63cca 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 4a8d4491..9658e7e3 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 98b5fffa..a117c7cc 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 2e86ffe6..b5ef1b4a 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 ffa6f42f..8de7d050 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 9dd9f605..e892239b 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 1e6771fc..849077ea 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 bc6041fd..7f43bcac 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 e69ec370..04e05c1a 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 4d3c0608..d36a5547 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 6529bb18..491d8b17 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 c7603e65..afd3e8a4 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 3dc058ef..2d01b5f8 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 fa7d9b93..fef55b03 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 0faecdb9..f1e363d9 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 16b62fe2..34e13c86 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 d2581f89..aaa75fc4 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 70be2052..e8dbd299 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 341f8fbd..50df5bf8 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 7a65388b..c0026ddf 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 b17738f9..20b8b2e2 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 59fdb22b..5ba48239 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 9ef8688d..d0583dae 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 0180260a..316fd991 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 41b29f35..b034f683 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 2f39a8ac..01c7e016 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 417371cb..313c8a56 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 c85609d7..16099b57 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 55e28bf0..12f872a1 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 53ea939e..b842317b 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 86ca2c7b..b34b63fb 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 6a161578..f0a5a494 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 7f775ab6..cd05260d 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 7234e20f..a6b14b39 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 c9c66716..052ad8fb 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 946f9fba..24325e92 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 30d89a63..dfaf6876 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 53510009..231a4eec 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 e062273b..d33bac7a 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 349d651f..3a9b35a1 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 30392bd9..6039fdd7 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 7a90fd32..ca38ef9c 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 4da75c6b..4eb23fac 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 83966332..e3da867c 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 ef556307..57f96c3b 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 9f68e39b..aa91072b 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 52f4772b..e34b99d8 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 40b47e11..ae20c8ba 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 07b1507b..d8e4ccb9 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 b7ff6a13..65765325 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 98157331..45990575 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 ffeccbf5..0220a5cb 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 b79859c6..380fcf5a 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 c77ca271..a894e3e6 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 6ceb35cd..62f25fc4 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 774e863c..175e3658 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 2cfcbeb4..fbdf00f5 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 30f805ab..80443103 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 fb95b265..a6ba7f3b 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 20138097..ae8be37d 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 b2d4cd9f..d058fbec 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 288bb92f..0888de9f 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 624ce3a5..f0cfb39a 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 768ddfd0..5634a8a1 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 4d61675e..c7b6cd29 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 aee2f90f..59daef3f 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 d29a3112..6a618abb 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 916f2ed5..bfbdec3f 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 3970ba8d..17c6c9f0 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 7c2f421f..eeafd32e 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 a3cb2cc0..eac69b52 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 9b7772c5..840b424d 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 49c74eb8..61a2ab1b 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 a37170ac..8133d14f 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 849077ea..cac311d1 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 4d081b4c..3f9d5625 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 b7da63ae..c20fe43c 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 674de14b..23d947bd 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 5d01b3fc..8cf5940f 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 7f43bcac..7078d744 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 04e05c1a..b8b679a1 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 d36a5547..5a032323 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 491d8b17..22989a7e 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 1ee2a5ea..2ddc9433 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 0a4a2514..9c7e3c58 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 afd3e8a4..fd5b902a 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 2d01b5f8..8fc4f253 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 1ee2a5ea..2ddc9433 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 a5aa4986..cc240cfd 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 fef55b03..d532cca4 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 f1e363d9..c831881e 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 1ee2a5ea..2ddc9433 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 efa3faad..70270d3d 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 34e13c86..8ab76ce9 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 aaa75fc4..a7969304 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 1ee2a5ea..2ddc9433 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 8d9b6fb5..7d1f61d9 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 e8dbd299..37848c54 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 50df5bf8..50750978 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 1ee2a5ea..2ddc9433 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 9555b1f3..8270c781 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 c0026ddf..fd343a61 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 20b8b2e2..139a3c5a 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 1ee2a5ea..2ddc9433 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 d8177e48..a724adfc 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 5ba48239..1ae73d47 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 d0583dae..e78690c3 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 1ee2a5ea..2ddc9433 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 d7f4a859..ba50191c 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 316fd991..ddfe8b45 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 b034f683..48088203 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 1ee2a5ea..2ddc9433 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 49cfa45b..44e98421 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 01c7e016..9faef4dd 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 313c8a56..04d0de5c 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 1ee2a5ea..2ddc9433 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 9aebd43c..a5e7c1b5 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 16099b57..258475b9 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 12f872a1..2fcd6bef 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 1ee2a5ea..2ddc9433 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 c55a0adb..ae9e68e8 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 b842317b..ce8f1c74 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 b34b63fb..8cad754b 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 1ee2a5ea..2ddc9433 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 971d5e06..89b22b5f 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 f0a5a494..a169cd02 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 cd05260d..73f67d68 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 1ee2a5ea..2ddc9433 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 389f6b5f..eb14575f 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 a6b14b39..8e040de5 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 052ad8fb..4def849e 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 4ab3196b..cf5529f8 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 e6a361ce..5239e47d 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 24325e92..d495355f 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 dfaf6876..d32ae417 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 1ee2a5ea..2ddc9433 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 e5fb132e..02662e22 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 231a4eec..61271fef 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 d33bac7a..2ffa1f6f 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 8133d14f..6fe2165c 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 53de88ee..d1ee9bac 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 47493e0d..dcf709da 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 0e992660..5b8be11b 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 3a9b35a1..c63e7a30 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 4ab3196b..cf5529f8 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 a54c64f7..88ba06ed 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 ee18f495..ced36108 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 6039fdd7..856f21bd 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 ca38ef9c..713cbb6e 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 4eb23fac..e9fdb09e 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 1ee2a5ea..2ddc9433 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 9e641f55..2aa60939 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 e3da867c..87b20c8c 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 57f96c3b..98b9b662 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 1ee2a5ea..2ddc9433 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 fcfa58e4..4494a8bb 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 aa91072b..39eb7495 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 e34b99d8..523a539f 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 1ee2a5ea..2ddc9433 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 c13f51aa..1f527e06 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 ae20c8ba..b9b12211 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 d8e4ccb9..a15bdc3b 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 1ee2a5ea..2ddc9433 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 4016511e..c4b0a550 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 65765325..968f861b 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 45990575..f29536c1 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 1ee2a5ea..2ddc9433 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 97701f17..ea82c146 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 0220a5cb..4b305f1c 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 380fcf5a..62191309 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 1ee2a5ea..2ddc9433 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 3e864c70..3baae4e4 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 a894e3e6..89ea2458 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 62f25fc4..a61a6083 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 1ee2a5ea..2ddc9433 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 b904dc82..6febf2ac 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 175e3658..52f1380c 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 fbdf00f5..cbc9f3e7 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 1ee2a5ea..2ddc9433 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 8f661b5f..a364d0ce 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 80443103..0049d814 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 a6ba7f3b..4aa6f07b 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 1ee2a5ea..2ddc9433 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 a64fa9af..7bcc1113 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 ae8be37d..cd826beb 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 d058fbec..a1dbae4e 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 1ee2a5ea..2ddc9433 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 cf179e76..1f2d348b 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 0888de9f..b3f5e033 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 f0cfb39a..7bfa6112 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 1ee2a5ea..2ddc9433 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 648d53a3..8d9b40c0 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 5634a8a1..6557bde3 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 c7b6cd29..24c6f90a 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 1ee2a5ea..2ddc9433 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 b5632ac4..c8aef369 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 59daef3f..f4b83ee7 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 6a618abb..c41ccc75 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 1ee2a5ea..2ddc9433 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 36f19112..e17b4c41 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 bfbdec3f..8f2d10c4 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 17c6c9f0..dc4a6071 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 1ee2a5ea..2ddc9433 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 1d28aafa..891bbf93 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 eeafd32e..49b7d572 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 eac69b52..ad17b24c 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 1ee2a5ea..2ddc9433 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 1b66e66c..8a0c2dcd 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 840b424d..744d3de8 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 61a2ab1b..44bb3873 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 1ee2a5ea..2ddc9433 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 0436c07b..c22693f3 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 f55b4b09..0710807e 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 2ffa1f6f..5e345fbb 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 9658e7e3..8d3d80d8 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 41c8c0d9..3b759479 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 7bf33298..39d3282c 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 359bea30..e40acee7 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 ee085b6f..0316e06b 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 86ede9ce..331a26fa 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 bc4434ed..7d97c569 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 20538ab9..dca30527 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 1da3a197..f613a0be 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 6fbeec30..87d82c37 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 1fe5e1ed..b5e2508d 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 fecdabe4..34120eac 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 ace5b940..725dec84 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 26693bf5..cb16cd50 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 1740ee3d..6ab88268 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 8d1fd475..5b5c3649 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 52e00a4f..8267f9ca 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 05107bb6..2606a587 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 9f48f746..08297930 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 4ac7740f..18562644 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 843c446b..b31b7952 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 6d601ef7..e300916f 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 3fbcfdf3..53f05645 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 b71a3c8f..baed04b8 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 e41d85d2..a541e189 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 3ad10dcf..120a3b5a 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 de17a767..ec079a19 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 e8515054..56f319ab 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 4c2b0d51..f7ea40cc 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 04de26fc..4c4d4f90 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 df29d806..343a810e 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 b4beb377..8dabfefe 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 76f3779c..1114650c 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 765e82b2..6bed99d6 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 ded31d2e..60ec2a13 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 53346f24..5cb3b4b8 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 5e345fbb..75b1800a 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 8d3d80d8..5c8f15d0 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 32305d67..4d857285 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 5bde0e07..1bd029cc 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 5bde0e07..1bd029cc 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 12a02795..d0ea4f43 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 cf5529f8..47138ffb 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 980477b3..32b5e317 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 b8b679a1..ca956045 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 22989a7e..061fc6b8 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 8fc4f253..05552677 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 92caaa15..bf85fa76 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 b7f1e653..485eae62 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 e8a8182a..a9ac7a16 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 d532cca4..8ef5bfac 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 c831881e..2284f1a9 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 ba2da8be..8ed7f1c7 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 922a943d..e62025cb 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 dff5cc10..9d4535f1 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 4d4c2bd9..54aaf6e1 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 c6b1a82a..9ea42953 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 a60320ea..ebf17c52 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 c85c9954..4dbcc02c 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 ce75bbe2..43bdc757 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 2ddc9433..a672de18 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 70270d3d..4c19e13e 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 a7969304..0de53773 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 3b8d8df4..58418350 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 dd1a4c36..9a1835b7 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 37848c54..899442f2 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 50750978..261a0c9b 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 339c9a3c..6b4e21de 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 6e7dc90f..3ef823f4 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 139a3c5a..4a453ea9 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 e78690c3..7fa545fa 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 48088203..165f9b37 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 04d0de5c..157f3240 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 2fcd6bef..b501a520 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 8cad754b..c67ab899 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 73f67d68..f9d69eac 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 d32ae417..12feb971 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 e9fdb09e..f0908ebb 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 98b9b662..d5c75a90 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 523a539f..6eb29530 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 a15bdc3b..aa7a45b4 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 f29536c1..3ed63579 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 62191309..043e8675 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 a61a6083..a096211d 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 cbc9f3e7..0e8fa65d 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 9be384c9..43dfedd6 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 47bd4d0a..c2880230 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 e367d756..70b995ee 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 0049d814..fce98c88 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 4aa6f07b..7c04e64e 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 fa8bade7..5a85d838 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 9a786632..0f22763d 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 dff5cc10..9d4535f1 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 4d4c2bd9..b87492c5 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 63f29396..9ea42953 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 2735e4fe..ebf17c52 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 7b03ffee..4dbcc02c 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 ce75bbe2..b54e9ddc 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 2ddc9433..a672de18 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 7bcc1113..7365dc0d 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 a1dbae4e..5d8c6b14 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 7bfa6112..62846af4 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 24c6f90a..ff876b02 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 a77356e5..c74373b8 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 5c1a4165..00000000 --- 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 04d200fb..a0528b05 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 f4b83ee7..56f02d8d 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 c41ccc75..55ceb255 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 66dee99f..7309e328 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 b5009f5f..3376090f 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 dff5cc10..9d4535f1 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 4d4c2bd9..3ee48f71 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 3dde5806..80bc4519 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 2af210a4..72fdf8b7 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 eb1e0015..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 f9ff2a91..35de4dcd 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 ce75bbe2..575fe7f7 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 2ddc9433..9c3b9d91 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 e17b4c41..0b5cc0f5 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 43365bf4..9bd0db81 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 dc4a6071..8b8b3f44 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 ad17b24c..ed2bd9af 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 44bb3873..e9a14548 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 7c04e64e..0c7b620b 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 575fe7f7..32c84bfe 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 9c3b9d91..2ee8491e 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 0b5cc0f5..1cde6cbe 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 2284f1a9..cf18533e 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 043e8675..6dbb0e63 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 0c7b620b..d8086ca9 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 00000000..78a0e798 --- /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 55ceb255..2c4b3ded 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 fd128071..bf6e5a91 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 9bd0db81..43365bf4 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 9be384c9..43dfedd6 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 aed95d78..50dd22b1 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 25286add..670ff2d9 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 fd5b902a..b65ee6ba 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 05552677..f61c2cbd 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 044ce4a5..bd9a9883 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 2ff3a07e..016b1a8d 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 dff5cc10..9d4535f1 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 4d4c2bd9..196d1063 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 51682c33..9ea42953 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 1c63f1df..ebf17c52 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 b5b38fa1..4dbcc02c 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 ce75bbe2..3552ea6b 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 2ddc9433..a672de18 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 cc240cfd..977f4361 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 58418350..ae8ac3f4 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 2a2493fb..00000000 --- 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 261a0c9b..9227411b 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 bf0c8c06..eb322157 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 5d516ad6..a7e8b6ee 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 b8392fab..e69de29b 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 af214aaf..e69de29b 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 ad77cc25..c950b8d7 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..b1bc573f 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 74f15a19..80bc4519 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 2af210a4..72fdf8b7 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 78bdc222..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 002341f2..35de4dcd 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 ce75bbe2..a003c7b1 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 2ddc9433..47138ffb 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 8270c781..efcd3bad 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 9be384c9..43dfedd6 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 4577fd1c..01215c8a 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 87b20c8c..8c5ec556 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 d5c75a90..4beb142d 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 fda6a307..c7d130ac 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 335c98aa..2be51dd9 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 77080d72..bac3538d 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..61e166aa 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 630cd20c..80bc4519 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 2af210a4..72fdf8b7 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 d9c70acc..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 1721b9ee..35de4dcd 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 ce75bbe2..9c53346e 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 2ddc9433..47138ffb 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 4494a8bb..ddaba77f 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 c8ba076a..fe631f91 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 92caaa15..bf85fa76 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 2e07f147..00000000 --- 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 d695380c..c4e09505 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 4b305f1c..a7d94af3 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 6dbb0e63..4980ae0e 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 21296ce9..f6907f5c 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 520a2d79..ab0e08fd 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 dff5cc10..9d4535f1 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 4d4c2bd9..b596a588 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 3cf3a085..9ea42953 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 1cafc66f..ebf17c52 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 7ed8d832..4dbcc02c 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 ce75bbe2..e8e9d2ad 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 2ddc9433..a672de18 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 3baae4e4..e6d5d15b 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 29398c39..c5d5bca4 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 2c4b3ded..90221f99 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 f61c2cbd..14dba8d0 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 a9d21a76..00000000 --- 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 8c5ec556..054b7aa2 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 4beb142d..4a182daa 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 2be51dd9..335c98aa 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 bac3538d..647eab77 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 61e166aa..598b23cd 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 9c53346e..9ac180b1 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 47138ffb..a672de18 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 ddaba77f..586e485d 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 6eb29530..781c7534 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 00000000..f60d8c7a --- /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 4980ae0e..29db0326 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 c5d5bca4..29398c39 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 061fc6b8..748092bc 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 899442f2..f29c1384 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 6b4e21de..339c9a3c 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 a7e8b6ee..5d516ad6 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 c950b8d7..f556973e 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 b1bc573f..3c145305 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 00000000..74676f0f --- /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 4a182daa..32524e74 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 fe631f91..c8ba076a 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 92caaa15..d28e306b 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 9a10cc72..f745a91c 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 39eb7495..823b869e 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 781c7534..83f63366 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 9946d12a..319456e0 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 3bfd8e9b..b4ff2ffe 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 29db0326..7462d794 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 9be384c9..43dfedd6 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 5268548d..00000000 --- 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 2880a0c6..e93b16bb 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 5a032323..ea63fb09 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 748092bc..360e6f3a 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 6e7bc728..6714b2fe 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 41c5f3b5..30b548ee 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 dff5cc10..9d4535f1 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 4d4c2bd9..faff9cff 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 942b2a36..80bc4519 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 2af210a4..72fdf8b7 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 00205cc5..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 58fdd6d5..35de4dcd 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 ce75bbe2..ef961a7c 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 2ddc9433..47138ffb 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 9c7e3c58..fee33c6c 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 ba5f0b14..e184c556 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 a003c7b1..e4a06d74 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 47138ffb..a672de18 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 efcd3bad..cd50e9a1 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 3ef823f4..6e7dc90f 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 c9491481..2ee9dae3 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 cf9684e3..adc4b366 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 d495355f..c664c31b 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 12feb971..382e1616 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 cd363745..eb14b860 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 13f521eb..d02d9f1a 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 32524e74..82db2ab5 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 d28e306b..bf85fa76 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 25c0e24b..48b28907 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 823b869e..df0ad8be 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 83f63366..4ae183f2 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 8e02fe05..d440703e 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 319456e0..9946d12a 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 1d935f46..250bbbdb 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 dff5cc10..9d4535f1 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 4d4c2bd9..8608c405 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 b1c66733..9ea42953 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 b0ad3212..ebf17c52 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 36aff36d..4dbcc02c 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 ce75bbe2..f586e8ec 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 2ddc9433..a672de18 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 1f527e06..4b7f1329 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 b4ff2ffe..3bfd8e9b 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 00000000..e357dcb0 --- /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 360e6f3a..e394d715 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 ef961a7c..96bd4655 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 47138ffb..a672de18 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 fee33c6c..558511bf 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 e184c556..ba5f0b14 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 2ee9dae3..43dfedd6 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 b2f5382b..3d77bee0 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 3c2d562a..cacdc07c 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..65eff94d 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 5ed8dfe9..80bc4519 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 2af210a4..72fdf8b7 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 a6e1ccb8..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 8e3fdd73..35de4dcd 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 ce75bbe2..cdcbeb58 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 2ddc9433..47138ffb 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 02662e22..25573dcc 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 4ae183f2..3a0d7560 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 e394d715..ee3cb0f2 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 c9491481..2ee9dae3 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 276c6e7b..53f002c1 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 8ab76ce9..c58dd4f3 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 0de53773..29ac8d02 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 d006f9ed..0ffccc3a 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 ebc54848..9e917693 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 c11bd924..711123de 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 c664c31b..5fcfa797 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 382e1616..63bac252 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 eb14b860..cd363745 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 cacdc07c..b6836b5d 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 65eff94d..35970ca7 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 cdcbeb58..269a58c9 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 47138ffb..a672de18 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 25573dcc..3a458a7d 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 d02d9f1a..13f521eb 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 d230c128..2ee9dae3 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 c990945f..d011d45d 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 968f861b..341ca42a 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 3ed63579..22a00467 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 c1132c88..57140918 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 e6b3a584..aab4f67c 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 ee3cb0f2..2f274271 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 2ee9dae3..43dfedd6 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 ff006679..2aee4055 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 c58dd4f3..17419a30 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 29ac8d02..1a44ab5d 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 6206226d..dfcb1b55 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 0ffccc3a..d006f9ed 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 8b58b7cd..069ac0fb 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 dff5cc10..9d4535f1 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 4d4c2bd9..abee56f2 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 d254d7d3..9ea42953 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 f5084bf1..ebf17c52 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 a740fe01..4dbcc02c 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 ce75bbe2..fb5e432a 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 2ddc9433..a672de18 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 7d1f61d9..81c35f81 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 9e917693..ebc54848 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 9be384c9..2ee9dae3 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 11d9d916..b7d640fd 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 1ae73d47..7643beb2 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 7fa545fa..60ec6e4a 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 05658929..3301f1a7 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 55b28eb7..54229c5d 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 63bac252..c7c31e8b 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 2ee9dae3..43dfedd6 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 22a00467..3d2206f7 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 9aef5369..197f6ae4 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 f7cb1653..c333a0ab 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..c0407019 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 4f0d2c04..80bc4519 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 2af210a4..72fdf8b7 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 3ef1bc7c..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 ac75224d..35de4dcd 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 ce75bbe2..b702870a 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 2ddc9433..47138ffb 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 ea82c146..71738416 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 7462d794..c17d43db 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 d8086ca9..4f9f1b1b 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 1a44ab5d..9867fa00 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 2ee9dae3..43dfedd6 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 2e105571..1f1c3922 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 2e634fb4..cccdf1da 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 55228169..6b646250 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..3dc825c1 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 831371a1..80bc4519 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 2af210a4..72fdf8b7 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 282073e0..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 515974f8..35de4dcd 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 ce75bbe2..db620af4 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 2ddc9433..47138ffb 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 ba50191c..c11a4162 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 c67ab899..178d59d0 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 2200cf1b..c6e4bae1 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 341ca42a..48f5d6a9 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 3d2206f7..ab1102ed 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 57140918..c1132c88 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 c333a0ab..e40a42a8 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 c0407019..1f2016c3 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 b702870a..9b684628 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 47138ffb..a672de18 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 71738416..b10c084e 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 aab4f67c..e6b3a584 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 90221f99..2c4b3ded 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 f57de1ac..6e1ef9a7 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 7643beb2..2cd91c5f 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 60ec6e4a..056b27a3 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 3301f1a7..05658929 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 cccdf1da..86240b5a 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 6b646250..8ac9a4a3 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 3dc825c1..844682e5 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 db620af4..f507995c 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 47138ffb..a672de18 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 c11a4162..1607637e 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 54229c5d..55b28eb7 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 9be384c9..2ee9dae3 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 2fdedc23..6950419f 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 ce8f1c74..0d90044b 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 178d59d0..929c0c5f 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 f9c91d66..0eb28053 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 7808fd0a..d3d9f537 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 ab1102ed..b6bca82a 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 0e8fa65d..f26fd3e9 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 00000000..a8a3ed8e --- /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 9227411b..b6ded927 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 056b27a3..9c796674 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 929c0c5f..ebf1b62e 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 4def849e..34b357c6 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 b6bca82a..330d474a 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 09df60df..2ee9dae3 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 cd952eff..840d75cc 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 52f1380c..68dfabe9 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 f26fd3e9..3627aade 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 bd4e18e2..34f8ffe2 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 a96a21dd..8e09fbec 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 ca956045..a7a06131 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 b6ded927..dc5d8f0a 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 2ee9dae3..43dfedd6 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 861a42a3..cf1f3984 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 0d90044b..9d53d936 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 ebf1b62e..ed1c86be 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 8c8d767f..00bad96c 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 0eb28053..f9c91d66 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 c57163a6..0a1c8406 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 11a48eb3..de5e0061 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 dff5cc10..9d4535f1 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 4d4c2bd9..6217cebe 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 7893db4e..9ea42953 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 3b75162d..ebf17c52 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 325fe5d0..4dbcc02c 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 ce75bbe2..e6837f6d 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 2ddc9433..a672de18 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 89b22b5f..0fe97f4b 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 d3d9f537..7808fd0a 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 ebd29185..34fcca6f 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 8e040de5..1b5444f6 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 34b357c6..a76145aa 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 cf5529f8..47138ffb 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 3627aade..924c3d39 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 ead0396a..c67cd6de 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 4f675c3d..17070985 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..a8cdf032 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 386d3df8..67f689c0 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 2af210a4..72fdf8b7 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 cdba52f7..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 c1535abe..35de4dcd 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 ce75bbe2..dbdea466 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 2ddc9433..47138ffb 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 a364d0ce..3391bac5 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 4d53cd68..fc284439 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 09df60df..2ee9dae3 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 c8194e6f..40020085 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 49b7d572..d0e17610 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 ed2bd9af..d8b3f70a 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 337da9a1..1432d5c4 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 418cfb7b..e1303b9f 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 ed1c86be..ee361ae3 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 a76145aa..2f923463 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 33abdedd..303712d4 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 5bde0e07..1bd029cc 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 5bde0e07..1bd029cc 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 976bd444..02f134c7 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 f027dae4..35de4dcd 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 2ee9dae3..43dfedd6 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 91b83936..00000000 --- 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 68dfabe9..46cc7fad 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 924c3d39..d0b68afb 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 c67cd6de..30d32229 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 34f8ffe2..bd4e18e2 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 17070985..f564d6ae 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 a8cdf032..c90c8606 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 67f689c0..dad9c8f5 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 dbdea466..9f525480 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 47138ffb..a672de18 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 3391bac5..bdeeaa08 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 ff876b02..75f3b7fc 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 f9d69eac..e1549333 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 2f923463..93edb6e0 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 00000000..e1f0ad91 --- /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 d0b68afb..b2c7da8b 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 04437ab0..c9879a20 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 477b97ba..0b947fa4 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 8e09fbec..a96a21dd 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 fc284439..1734ca28 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 09df60df..2ee9dae3 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 a338630b..4f24122f 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 6557bde3..cee8c033 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 75f3b7fc..4eee50fa 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 1038ac78..4d0c02b1 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 d9074bea..91c4e4d8 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 2ee9dae3..43dfedd6 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 432f9158..ba32b75e 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 9113ff61..d1441e2f 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..5ed58acd 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 bbdb6c5c..80bc4519 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 2af210a4..72fdf8b7 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 464d83ac..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 b955161b..35de4dcd 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 ce75bbe2..255bf2e4 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 2ddc9433..47138ffb 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 8a0c2dcd..88da435e 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 09df60df..2ee9dae3 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 30b2f752..8b545db6 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 a169cd02..2fd98af9 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 e1549333..8e7e9d4e 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 f0aa98d5..f7fe74fa 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 d576fba8..7a12d28a 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 b2c7da8b..a43cadef 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 5d8c6b14..01b54bde 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 4eee50fa..9c60b485 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 c264c368..94564a90 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 d0e17610..f6f9e7e4 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 d8b3f70a..a604c7df 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 1432d5c4..337da9a1 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 d1441e2f..3a33c2f1 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 5ed58acd..20503a7f 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 255bf2e4..516eb058 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 47138ffb..a672de18 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 88da435e..0503994a 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 b48d4d1e..fbd712a0 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 e93c9c3c..5318e8a2 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 e1303b9f..418cfb7b 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 2ee9dae3..43dfedd6 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 bb603965..8256d342 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 2fd98af9..d6bed6bd 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 8e7e9d4e..a833fbf9 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 46fa466c..1f9c2792 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 f7fe74fa..f0aa98d5 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 04b7eb9d..7586d2d8 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 dff5cc10..9d4535f1 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 4d4c2bd9..64c20855 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 ca08b46e..9ea42953 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 353bc799..ebf17c52 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 6fbe829c..4dbcc02c 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 ce75bbe2..254e52a2 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 2ddc9433..a672de18 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 eb14575f..d365caff 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 7a12d28a..d576fba8 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 09df60df..43dfedd6 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 e489166c..58529b59 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 cd826beb..bb9103ba 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 01b54bde..1991054a 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 036e48f0..004ecb1c 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 08bf2fd6..0d02f3ef 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 636b2315..3ec683a6 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..3e791934 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 b0914d79..80bc4519 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 2af210a4..72fdf8b7 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 535e8e23..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 2cab6f19..35de4dcd 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 ce75bbe2..ebe155ab 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 2ddc9433..47138ffb 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 1f2d348b..129aed87 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 027a1d9e..4dc09f63 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 2ee9dae3..43dfedd6 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 918c85d8..bdd2020d 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 cee8c033..85cfc585 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 9c60b485..35b4db3d 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 9e1d354b..fd85558f 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 4d0c02b1..1038ac78 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 fe9a8a92..b0d68d3f 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 dff5cc10..9d4535f1 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 4d4c2bd9..cd296b89 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 5077c18f..9ea42953 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 7d08f45a..ebf17c52 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 28d4d120..4dbcc02c 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 ce75bbe2..45432d3e 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 2ddc9433..a672de18 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 c8aef369..bdbb4cf6 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 24edce3b..cc4ce377 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 91c4e4d8..d9074bea 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 09df60df..2ee9dae3 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 3c0e2ae7..10ccff7d 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 8f2d10c4..a8e900b4 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 8b8b3f44..cf6bf2e6 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 001b16d1..891a105c 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 770779ac..954f44d9 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 a604c7df..3c9636f7 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 1991054a..b75f001a 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 5d516ad6..a7e8b6ee 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 35b4db3d..2b7731f3 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 4a453ea9..22d1ee19 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 165f9b37..3d244710 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 a833fbf9..2b2d6875 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 901628f7..601bbb4d 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 bb9103ba..0f23f975 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 b75f001a..b8cfee75 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 0d02f3ef..08bf2fd6 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 3ec683a6..fb6e4df2 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 3e791934..c8755d61 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 ebe155ab..d2c6290c 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 47138ffb..a672de18 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 129aed87..a56793c0 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 4dc09f63..027a1d9e 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 2b7731f3..b5e20609 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 2ee9dae3..43dfedd6 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 54a51307..6c081560 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 d4b3f134..3223876b 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..1d5bbae4 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 f396a8b0..80bc4519 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 2af210a4..72fdf8b7 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 679736c6..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 a74da742..35de4dcd 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 ce75bbe2..28167579 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 2ddc9433..47138ffb 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 891bbf93..b089677f 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 aa01ca52..d28e306b 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 31c99940..c5dc1f1d 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 fd343a61..56948e0a 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 22d1ee19..c202de31 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 1da755b6..193fad24 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 0e1e7cf5..2cf6f753 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 f1287e67..d28e306b 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 a5ddade4..12b0dcc8 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 ddfe8b45..82cf7e47 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 3d244710..0d0657e1 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 b29d3a04..ea4ce831 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 d8ae92df..bb78df88 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 b8cfee75..90673352 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 d318188a..7453b8ac 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 a8e900b4..e9d5a84c 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 cf6bf2e6..2004b395 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 891a105c..001b16d1 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 3223876b..50e15445 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 1d5bbae4..040d0ef3 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 28167579..207bbb17 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 47138ffb..a672de18 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 b089677f..997ea7d0 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 954f44d9..770779ac 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 f1287e67..d28e306b 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 76e21b39..76c71844 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 744d3de8..837a74c7 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 e9a14548..5dbd033d 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 752226ee..c5699201 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 b04b544a..7f72cea0 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 d28e306b..bf85fa76 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 032ac1f2..00000000 --- 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 56948e0a..0d74ca91 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 c202de31..0889a76c 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 5d1bbc9a..09b85148 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 193fad24..1da755b6 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 1fa67161..d9cfdcb4 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 dff5cc10..9d4535f1 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 4d4c2bd9..8642b1c4 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 a6e3ebc8..9ea42953 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 ee76c009..ebf17c52 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 38dda771..4dbcc02c 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 ce75bbe2..04b7885a 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 2ddc9433..a672de18 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 a724adfc..0b0d4c66 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 2cf6f753..0e1e7cf5 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 d28e306b..bf85fa76 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 409104dc..adbcacb1 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 82cf7e47..da2fdefd 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 0d0657e1..e3427b3d 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 40951dee..ae58eccf 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 ea4ce831..b29d3a04 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 b90265da..c8874fd0 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 dff5cc10..9d4535f1 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 4d4c2bd9..3ee4ecd4 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 0508edd7..9ea42953 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 ee93b290..ebf17c52 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 e70f4178..4dbcc02c 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 ce75bbe2..3f95e6d2 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 2ddc9433..a672de18 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 44e98421..d61b5694 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 bb78df88..d8ae92df 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 0d135c05..f271dc59 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 050e3df9..f81c283d 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 89ea2458..cafdf299 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 a096211d..7929fca2 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 0796b339..8914e210 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 aa65219d..518f12da 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 2004b395..9832ba2a 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 d28e306b..bf85fa76 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 8dd3b1d8..00000000 --- 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 5dbd033d..c64d45a1 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 4160921b..9ad34ea2 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 abd7a28f..7f013d35 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..54b4d5d2 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 92a2d2ce..80bc4519 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 2af210a4..72fdf8b7 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 2111e802..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 677db7fb..35de4dcd 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 ce75bbe2..5ac7cf26 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 2ddc9433..47138ffb 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 c22693f3..81377c10 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 00000000..941e0afb --- /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 0889a76c..bfef0cbc 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 00000000..81ffacf3 --- /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 837a74c7..fc51a683 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 c5699201..752226ee 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 7f013d35..42da84fa 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 54b4d5d2..770f4274 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 5ac7cf26..b034ea58 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 47138ffb..a672de18 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 81377c10..8dbb2f55 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 7f72cea0..b04b544a 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 e3427b3d..950783dd 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 f271dc59..67b3ec1c 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 a9ba95cb..8d0b3412 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 9b052abb..5a8d8910 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..4604a371 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 b39b0a29..80bc4519 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 2af210a4..72fdf8b7 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 d32c0515..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 562a061f..35de4dcd 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 ce75bbe2..095e215b 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 2ddc9433..47138ffb 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 6febf2ac..a816133a 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 c64d45a1..2c631e93 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 bfef0cbc..edc7705c 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 aa01ca52..d28e306b 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 3db06313..fe3da191 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 9faef4dd..c22b5f38 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 157f3240..77d91229 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 6077031b..c88ccc85 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 9d400d07..e83bb4f4 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 aa01ca52..d28e306b 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 bbb2c1cd..ee8cba9a 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 258475b9..e20e30a0 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 b501a520..f5ac6d9b 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 40e72097..df55d907 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 477db069..c84c8d0b 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 aa01ca52..d28e306b 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 473e0314..0c6f0a68 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 b9b12211..b5cd0c55 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 aa7a45b4..bda5aae9 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 79680a6a..0285d07b 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 12a67dfd..f3e9c49e 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 85e814fd..f498f05d 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 cafdf299..a987c8f8 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 7929fca2..78be92e6 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 8d0b3412..09794eb5 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 8914e210..0796b339 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 5a8d8910..1a676679 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 4604a371..6dbdd12e 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 095e215b..ac3ba1d0 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 47138ffb..a672de18 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 a816133a..f4f79268 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 518f12da..aa65219d 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 2c631e93..07dd27b9 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 d28e306b..bf85fa76 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 6289f37c..00000000 --- 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 c22b5f38..fdb945d3 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 77d91229..8d782a03 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 588d76f2..91a46d4a 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 53a213a4..29d430ce 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..95673b69 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 a882197e..80bc4519 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 2af210a4..72fdf8b7 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 889fad33..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 73b89846..35de4dcd 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 ce75bbe2..9a5e42dc 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 2ddc9433..47138ffb 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 a5e7c1b5..cf4c4dd4 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 d28e306b..bf85fa76 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 f5ac6d9b..80cc07aa 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 e97e1bf9..f6786402 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 00000000..19ed967c --- /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 00000000..ef8b816c --- /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 f96d5095..52d73787 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 69fdff2b..e9a2f446 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 eed8d4d1..4e15b1a3 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 dff5cc10..d8215416 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 4d4c2bd9..2c478d8c 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 7c83a239..c03bd8d8 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 0e3bf1b9..1bd029cc 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 0e3bf1b9..1bd029cc 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 ea010118..48fee421 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 00000000..b0e69ab1 --- /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 00000000..7b2660a2 --- /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 00000000..dfa21f2e --- /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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 99a0a238..80bc4519 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 2af210a4..72fdf8b7 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 10d179e4..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 88acc000..35de4dcd 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 ce75bbe2..0e9d987e 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 2ddc9433..47138ffb 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 ae9e68e8..6b5b2916 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 00000000..eaab4a47 --- /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 00000000..8a789b63 --- /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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 bd4e884d..eb557424 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 91f383c1..d4d5b16c 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 aa01ca52..d28e306b 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 bbc8009a..7f8fbc07 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 713cbb6e..acdd8fea 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 f0908ebb..cfeac5a6 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 794a96e5..98bb2ef0 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 feddb411..058dbe0e 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 d28e306b..bf85fa76 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 8b3a18ec..d241d520 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 b5cd0c55..5a449aab 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 bda5aae9..62614fa1 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 76f1f286..4739c021 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 0285d07b..79680a6a 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 94695915..86d31054 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 dff5cc10..9d4535f1 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 4d4c2bd9..62ccb64c 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 193b4bdf..9ea42953 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 53031109..ebf17c52 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 0c3ec227..4dbcc02c 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 ce75bbe2..12fec320 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 2ddc9433..a672de18 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 c4b0a550..992e7dfe 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 f3e9c49e..12a67dfd 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 78be92e6..28b4f5b2 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 4c6b3748..da481699 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 8d782a03..c6a826bf 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 c88ccc85..6077031b 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 29d430ce..89702c53 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 95673b69..bbd6f96c 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 9a5e42dc..29d2add9 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 47138ffb..a672de18 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 cf4c4dd4..f59e32e9 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 e83bb4f4..9d400d07 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 80cc07aa..d04a4644 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 5d516ad6..a7e8b6ee 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 62614fa1..b26ac9b4 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 c6a826bf..b9fafe0a 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 00000000..3242c815 --- /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 e20e30a0..53b4e3ee 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 d04a4644..54b1d5f1 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 df55d907..40e72097 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 e9a2f446..20610f25 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 2c478d8c..9ecf2df1 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 0e9d987e..31dd7b5b 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 47138ffb..a672de18 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 6b5b2916..b47c2517 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 c84c8d0b..477db069 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 75b1800a..86edd6e5 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 54b1d5f1..54a484c3 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 2d12ab16..540e43d0 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 e974040b..da8a4281 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 ff24160f..9e5ea869 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 d632a147..eea868a1 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 ee085b6f..0316e06b 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 95b0f24a..a7b20844 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 c92a3d1d..93690974 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 1740ee3d..6ab88268 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 8d1fd475..5b5c3649 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 de17a767..ec079a19 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 e8515054..56f319ab 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 b41ba5a5..334651f3 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 53346f24..5cb3b4b8 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 d1ee9bac..d5b61b88 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 d28e306b..bf85fa76 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 d9d23567..a7af4b22 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 acdd8fea..8447324a 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 cfeac5a6..f37a9654 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 1e816139..dc229a73 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 98bb2ef0..794a96e5 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 b1ca6d13..6af3acb9 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 dff5cc10..f9bcfbf4 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 4d4c2bd9..426405c1 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 0a2ae24f..9ea42953 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 c33be11e..ebf17c52 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 a04a7849..4dbcc02c 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 ce75bbe2..6d918d9a 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 2ddc9433..a672de18 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 2aa60939..ffde8f59 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 058dbe0e..feddb411 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 9f7fedda..2495214e 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 c3d4089b..1f30bbfa 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 b3f5e033..1b2607cc 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 62846af4..0291131b 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 ba8baf8e..5fec5aac 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 8e48f6d1..ef211ba0 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 86edd6e5..15b9580a 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 f37a9654..e146710b 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 2495214e..b649810f 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 2167b9b8..831bba3d 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 1b2607cc..024257b4 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 0291131b..273bf7bd 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 13c7c2c1..70b61eee 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 5fec5aac..ba8baf8e 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 00000000..17ad9726 --- /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 00000000..650fbf03 --- /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 f96d5095..b93014b6 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 c687f75f..aa0a2676 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 dff5cc10..9d4535f1 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 4d4c2bd9..57715a74 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 0e3bf1b9..ec7ff451 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 0e3bf1b9..ec7ff451 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 00000000..9b2f8d96 --- /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 00000000..d787a5ef --- /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 00000000..d78486b0 --- /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 8dd341fd..9ea42953 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 4588ef9b..ebf17c52 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 9b16d68b..4dbcc02c 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 ce75bbe2..1a7dc040 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 2ddc9433..922a3359 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 8d9b40c0..93d40919 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 00000000..b1329ba8 --- /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 00000000..c7e6f81a --- /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 bd4e884d..e2f6501e 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 91f383c1..ab75cccf 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 ef211ba0..8e48f6d1 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 8cf5940f..b970f102 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 7078d744..d0b40016 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 a7a06131..b271f64b 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 eea868a1..3d9b0d60 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 bc1265c3..7ed46f61 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 4c444070..d119c60a 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 577725d3..d5b41ba1 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 92eeb6cb..97247e83 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 15b9580a..aa3021f0 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 b52f70a8..880997f5 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 c9b733eb..d4c7fb28 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 5bde0e07..1bd029cc 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 5bde0e07..1bd029cc 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 f027dae4..35de4dcd 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 cde94de5..f378e6c7 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 5c8f15d0..3053eea4 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 a117c7cc..3341c781 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 8580fc8d..33e923bf 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 9866dd23..9bad0722 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 ced36108..712a0f1e 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 856f21bd..cf231d88 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 a0a5db9d..d664c2bd 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 92efa3b3..33ac0bdd 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 64d9ec9a..b855d4ee 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 8c41ec12..f6a2d12c 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 8de7d050..b876a60c 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 8d03991a..b29a1351 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 0df2d803..6c7a4930 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 f5824959..9f0ccb8b 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 f994c6aa..a9c0c99e 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 b26ac9b4..145b10cc 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 28b4f5b2..8cb42759 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 a43cadef..bc3de6c9 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 90673352..a48079f9 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 273bf7bd..0f0539ea 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 b5e20609..5e197a09 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 9832ba2a..5c9db1ba 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 cac311d1..78e8880f 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 d119c60a..79f3e3e2 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 3053eea4..d921d6c5 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 d664c2bd..ebb7b794 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 d0b40016..0fc912c0 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 b271f64b..cdac97f9 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 14dba8d0..3b48e1f0 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 bf85fa76..9a486b4b 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 485eae62..61388655 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 dd7e1262..e7a9c8ac 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 8ef5bfac..845a2220 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 cf18533e..e964cc06 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 f97c61e8..9bd93617 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 9867fa00..545ba461 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 ae8ac3f4..041757eb 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 f29c1384..a0f90796 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 dc5d8f0a..a41b6adc 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 339c9a3c..6b4e21de 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 a672de18..47138ffb 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 cd50e9a1..efcd3bad 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 6e7dc90f..3ef823f4 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 edc7705c..50e30f7a 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 9c796674..ce30ff59 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 950783dd..fd83113e 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 b9fafe0a..386da9a1 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 54a484c3..7e90fc63 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 2b2d6875..47f882c2 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 aa3021f0..1ceed13d 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 e146710b..1bbf8ab2 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 82db2ab5..538f743a 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 3a0d7560..1e614455 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 43dfedd6..7cc6a513 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 c2880230..00000000 --- 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 1245641c..c03ad6c0 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 fce98c88..a6390189 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 4f9f1b1b..08d087e5 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 1e52e49c..e49956be 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 0f0539ea..f7312526 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 23d947bd..27b180f9 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 36a72ea5..5593a881 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 b970f102..004cfac3 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 78a0e798..00000000 --- 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 9856465a..167036f4 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 2c4b3ded..d913a585 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 316fc99e..3a5888fc 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 3c9636f7..ccbcffd0 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 07dd27b9..31ca7b0d 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 00000000..83c8b771 --- /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 08d087e5..f5a2b030 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 00000000..5daabdc2 --- /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 e964cc06..c358a8a1 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 f5a2b030..05d635ba 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 d913a585..3952ff18 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 43dfedd6..7cc6a513 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 50dd22b1..768794b3 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 896dbb45..1bad9bc3 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 b65ee6ba..d7736c82 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 3b48e1f0..66b6ab44 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 65c8fc84..b0be2194 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 c358a8a1..b5b424b2 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 041757eb..4c783827 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 a8a3ed8e..00000000 --- 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 20dd86e4..a53a7366 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 a41b6adc..daf8d7e3 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 5d516ad6..a7e8b6ee 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 f556973e..c950b8d7 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 3c145305..b1bc573f 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 e4a06d74..a003c7b1 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 f8c5b2f5..dcc7b2a7 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 43dfedd6..7cc6a513 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 264bdac7..15c384d8 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 054b7aa2..39004a73 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 538f743a..5201a42e 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 335c98aa..2be51dd9 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 647eab77..bac3538d 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 598b23cd..61e166aa 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 9ac180b1..9c53346e 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 a672de18..47138ffb 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 586e485d..ddaba77f 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 c8ba076a..fe631f91 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 2cd2e2fd..c4ea6c69 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 bf85fa76..9a486b4b 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 f60d8c7a..00000000 --- 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 be68a4d1..1b64f178 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 a7d94af3..19e6dfab 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 c17d43db..92689ecf 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 0413b973..3ceda121 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 ab0e08fd..3e06a44e 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 b596a588..b30a6b15 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 e8e9d2ad..c3716a6a 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 a672de18..47138ffb 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 e6d5d15b..b36adff9 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 29398c39..c5d5bca4 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 62ce2e78..777af468 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 05d635ba..66415443 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 3952ff18..e6a9d7da 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 66b6ab44..2d457997 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 74676f0f..170b2e9a 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 15c384d8..f36e55ea 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 39004a73..ae8e19da 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 5201a42e..46657535 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 2be51dd9..335c98aa 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 bac3538d..647eab77 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 61e166aa..598b23cd 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 9c53346e..9ac180b1 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 47138ffb..a672de18 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 ddaba77f..586e485d 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 fe631f91..c8ba076a 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 c4ea6c69..77eb0206 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 1e614455..65c403b9 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 00000000..fda2bbfb --- /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 1b64f178..18ac648c 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 19e6dfab..93936ddf 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 92689ecf..0f7f9993 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 3ceda121..0413b973 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 3e06a44e..ab0e08fd 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 b30a6b15..b596a588 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 c3716a6a..e8e9d2ad 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 47138ffb..a672de18 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 b36adff9..e6d5d15b 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 c5d5bca4..29398c39 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 777af468..a352cc4b 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 46657535..51ae3e30 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 bf85fa76..9a486b4b 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 df0ad8be..9ad2a56f 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 9946d12a..319456e0 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 a672de18..47138ffb 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 4b7f1329..c3ddc6d5 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 3bfd8e9b..b4ff2ffe 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 43dfedd6..7cc6a513 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 e357dcb0..00000000 --- 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 4321d887..66e95067 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 ea63fb09..90a9c224 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 2f274271..41913670 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 799afe6f..c599763c 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 30b548ee..23198c2b 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 faff9cff..2484c590 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 96bd4655..ef961a7c 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 a672de18..47138ffb 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 558511bf..fee33c6c 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 ba5f0b14..e184c556 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 4173fdcf..5eedbdb7 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 a53a7366..0372395a 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 a0f90796..acece68f 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 6b4e21de..339c9a3c 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 a7e8b6ee..5d516ad6 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 c950b8d7..f556973e 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 b1bc573f..3c145305 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 a003c7b1..e4a06d74 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 47138ffb..a672de18 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 efcd3bad..cd50e9a1 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 3ef823f4..6e7dc90f 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 dcc7b2a7..eb176205 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 43dfedd6..7cc6a513 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 5fcfa797..59331f42 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 c7c31e8b..638f4364 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 cd363745..eb14b860 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 a672de18..47138ffb 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 3a458a7d..25573dcc 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 13f521eb..d02d9f1a 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 51ae3e30..75d06d22 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 48b28907..a45c7dea 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 7314e5bf..a3cdb6a2 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 9ad2a56f..72f9ad71 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 65c403b9..5e28fe4f 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 319456e0..9946d12a 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 47138ffb..a672de18 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 c3ddc6d5..4b7f1329 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 b4ff2ffe..3bfd8e9b 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 dcd60bf7..3fd51d8b 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 0f7f9993..f94c2813 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 00000000..5624f80e --- /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 66e95067..da2d4d8b 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 90a9c224..417afaab 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 41913670..d29ef07a 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 c599763c..799afe6f 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 23198c2b..30b548ee 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 2484c590..faff9cff 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 ef961a7c..96bd4655 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 47138ffb..a672de18 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 fee33c6c..558511bf 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 e184c556..ba5f0b14 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 5eedbdb7..a890c92b 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 545ba461..94cd0bb0 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 7a28b141..eefe2827 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 638f4364..1ca1f860 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 b6836b5d..cacdc07c 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 35970ca7..65eff94d 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 269a58c9..cdcbeb58 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 b1c9d9c4..3d185dfb 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 5e28fe4f..ec73856e 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 d29ef07a..877b8188 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 43dfedd6..7cc6a513 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 17419a30..ba85cbc4 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 94cd0bb0..d95176b1 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 d006f9ed..0ffccc3a 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 a672de18..47138ffb 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 81c35f81..0378a0c5 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 ebc54848..9e917693 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 711123de..f4a704b0 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 eefe2827..65351a88 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 59331f42..e754d1f8 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 1ca1f860..c3b631ef 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 eb14b860..cd363745 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 cacdc07c..b6836b5d 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 65eff94d..35970ca7 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 cdcbeb58..269a58c9 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 47138ffb..a672de18 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 25573dcc..3a458a7d 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 d02d9f1a..13f521eb 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 3d185dfb..127a823f 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 43dfedd6..7cc6a513 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 48f5d6a9..d8937aee 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 330d474a..96931672 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 c1132c88..57140918 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 a672de18..47138ffb 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 b10c084e..71738416 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 e6b3a584..aab4f67c 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 2aee4055..4088e89b 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 80bb5187..afdbb175 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 ba85cbc4..dc404466 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 d95176b1..30c4a9f1 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 0ffccc3a..d006f9ed 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 47138ffb..a672de18 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 0378a0c5..81c35f81 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 9e917693..ebc54848 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 62706556..a6f48671 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 43dfedd6..7cc6a513 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 2cd91c5f..94d3c1fc 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 ce30ff59..68b3d307 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 05658929..3301f1a7 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 a672de18..47138ffb 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 1607637e..c11a4162 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 55b28eb7..54229c5d 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 c3b631ef..a9abfe14 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 c6e4bae1..00000000 --- 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 2d9a6acd..ce73cbcb 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 96931672..58f9efa2 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 e40a42a8..c333a0ab 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 1f2016c3..c0407019 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 9b684628..b702870a 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 272f26de..14f41c64 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 30c4a9f1..5de5e7cc 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 c15dc332..899478d5 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 1f1c3922..b2443fce 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 86240b5a..cccdf1da 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 8ac9a4a3..6b646250 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 844682e5..3dc825c1 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 f507995c..db620af4 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 58ea9f84..a76cd919 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 ee361ae3..7fbba730 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 00000000..53de6396 --- /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 ce73cbcb..087cab37 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 d8937aee..c12ef61e 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 58f9efa2..bc90d4c5 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 57140918..c1132c88 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 c333a0ab..e40a42a8 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 c0407019..1f2016c3 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 b702870a..9b684628 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 47138ffb..a672de18 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 71738416..b10c084e 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 aab4f67c..e6b3a584 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 14f41c64..36bf6d0d 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 5de5e7cc..2571a6a8 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 00000000..80f95ef3 --- /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 6e1ef9a7..2c032ec6 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 899478d5..a1fbcf6e 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 94d3c1fc..c8860343 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 68b3d307..0c8bcdbc 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 b2443fce..1f1c3922 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 3301f1a7..05658929 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 cccdf1da..86240b5a 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 6b646250..8ac9a4a3 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 3dc825c1..844682e5 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 db620af4..f507995c 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 47138ffb..a672de18 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 c11a4162..1607637e 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 54229c5d..55b28eb7 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 a76cd919..c12e2bf4 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 43dfedd6..7cc6a513 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 9d53d936..83c43110 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 7fbba730..b756344f 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 f9c91d66..0eb28053 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 a672de18..47138ffb 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 0fe97f4b..8a2d8c00 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 7808fd0a..d3d9f537 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 bc90d4c5..e56d31ae 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 bc3de6c9..fdcf225b 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 daf8d7e3..dcd9de23 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 43dfedd6..7cc6a513 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 46cc7fad..1dd0bb16 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 bd4e18e2..34f8ffe2 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 a672de18..47138ffb 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 bdeeaa08..3391bac5 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 a96a21dd..8e09fbec 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 dcd9de23..9ccf057a 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 0c8bcdbc..377b5a14 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 cf1f3984..3228da65 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 d19d8f8a..c52abed5 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 83c43110..d4bcdacb 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 b756344f..59965fe8 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 0eb28053..f9c91d66 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 47138ffb..a672de18 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 8a2d8c00..0fe97f4b 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 d3d9f537..7808fd0a 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 7fc927ff..8380347f 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 93edb6e0..88763af9 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 aa9cf380..a60ee121 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 fdcf225b..fd4f5861 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 f564d6ae..17070985 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 c90c8606..a8cdf032 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 dad9c8f5..67f689c0 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 9f525480..dbdea466 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 1734ca28..fc284439 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 c45ea1a4..4571dbc0 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 43dfedd6..7cc6a513 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 f6f9e7e4..7b1aad64 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 ccbcffd0..e8cec296 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 337da9a1..1432d5c4 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 a672de18..47138ffb 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 0503994a..88da435e 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 418cfb7b..e1303b9f 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 59965fe8..6a6e4b59 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 88763af9..b8da9b5f 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 fa351d9e..92447f09 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 e1f0ad91..00000000 --- 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 a60ee121..074b2702 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 1dd0bb16..04107d8d 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 fd4f5861..6eff3136 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 34f8ffe2..bd4e18e2 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 17070985..f564d6ae 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 a8cdf032..c90c8606 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 67f689c0..dad9c8f5 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 dbdea466..9f525480 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 47138ffb..a672de18 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 3391bac5..bdeeaa08 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 8e09fbec..a96a21dd 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 5e197a09..956745ef 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 bc1f93dd..6fec330b 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 3a33c2f1..d1441e2f 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 20503a7f..5ed58acd 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 516eb058..255bf2e4 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 7087d3e0..ac06bb12 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 6a6e4b59..33fa973b 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 b8da9b5f..ca6b229f 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 00000000..1bea03e3 --- /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 6eff3136..e1747ea5 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 fc284439..1734ca28 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 4571dbc0..494b143f 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 43dfedd6..7cc6a513 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 85cfc585..dc014582 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 1038ac78..4d0c02b1 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 a672de18..47138ffb 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 bdbb4cf6..4d8b1bc5 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 d9074bea..91c4e4d8 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 94564a90..00000000 --- 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 e8cec296..3f489f30 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 5d516ad6..a7e8b6ee 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 47f882c2..47115094 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 e1747ea5..5e927528 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 956745ef..accfd67e 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 00000000..af7021e0 --- /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 6fec330b..86c304ff 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 7b1aad64..458a3728 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 3f489f30..d4d898ad 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 1432d5c4..337da9a1 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 d1441e2f..3a33c2f1 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 5ed58acd..20503a7f 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 255bf2e4..516eb058 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 47138ffb..a672de18 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 88da435e..0503994a 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 e1303b9f..418cfb7b 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 ac06bb12..3081c856 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 43dfedd6..7cc6a513 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 8256d342..00000000 --- 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 5cedb0d7..72d10562 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 d6bed6bd..c31761d0 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 47115094..55e7f5d7 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 254e52a2..ab6deb72 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 a672de18..47138ffb 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 d365caff..c68dc271 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 d576fba8..7a12d28a 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 84a49676..f85aa5bc 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 43dfedd6..7cc6a513 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 faba5129..052cde89 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 0f23f975..86253e7e 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 a48079f9..68d429b4 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 004ecb1c..bce561b5 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 08bf2fd6..0d02f3ef 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 fb6e4df2..3ec683a6 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 c8755d61..3e791934 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 d2c6290c..ebe155ab 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 a672de18..47138ffb 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 a56793c0..129aed87 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 027a1d9e..4dc09f63 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 5edc1476..7cab3548 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 bdd2020d..1941d155 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 7d4e03ba..85553ceb 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 dc014582..0cf981cb 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 accfd67e..d46ea797 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 4d0c02b1..1038ac78 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 47138ffb..a672de18 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 4d8b1bc5..bdbb4cf6 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 91c4e4d8..d9074bea 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 342d359c..ead95865 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 43dfedd6..7cc6a513 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 e9d5a84c..65ce2b79 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 5c9db1ba..78bc6b84 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 001b16d1..891a105c 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 a672de18..47138ffb 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 997ea7d0..b089677f 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 770779ac..954f44d9 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 d4d898ad..c5073301 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 00000000..821942cf --- /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 55e7f5d7..855f56e2 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 ab6deb72..254e52a2 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 47138ffb..a672de18 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 c68dc271..d365caff 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 7a12d28a..d576fba8 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 f85aa5bc..519a48b5 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 68d429b4..be8494b0 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 bce561b5..004ecb1c 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 5d516ad6..a7e8b6ee 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 d46ea797..689c00f3 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 bf85fa76..9a486b4b 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 0d74ca91..355308a0 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 50e30f7a..c6b4b1fd 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 1da755b6..193fad24 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 a672de18..47138ffb 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 0b0d4c66..7f73c382 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 0e1e7cf5..2cf6f753 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 bf85fa76..9a486b4b 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 da2fdefd..fcea1cd7 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 fd83113e..e0b8c695 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 b29d3a04..ea4ce831 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 a672de18..47138ffb 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 d61b5694..edfaddb6 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 d8ae92df..bb78df88 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 855f56e2..f93aa133 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 601bbb4d..127794a7 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 052cde89..291948cb 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 86253e7e..a5b87ea3 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 be8494b0..abdd1b8e 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 0d02f3ef..08bf2fd6 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 3ec683a6..fb6e4df2 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 3e791934..c8755d61 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 ebe155ab..d2c6290c 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 47138ffb..a672de18 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 129aed87..a56793c0 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 4dc09f63..027a1d9e 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 7cab3548..18ba6578 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 7453b8ac..c8f05221 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 08a5c465..1dfab091 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 65ce2b79..fd28c21a 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 78bc6b84..97dafe2b 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 891a105c..001b16d1 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 47138ffb..a672de18 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 b089677f..997ea7d0 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 954f44d9..770779ac 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 c04580bf..5322fb30 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 31ca7b0d..83659e77 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 941e0afb..ffe8d234 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 0c8c08ba..7ca2ffaf 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 355308a0..541f9d06 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 c6b4b1fd..0568f0bf 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 193fad24..1da755b6 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 47138ffb..a672de18 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 7f73c382..0b0d4c66 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 2cf6f753..0e1e7cf5 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 e230006d..f4d1208d 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 adbcacb1..00000000 --- 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 74cd7d25..ddfbc1dd 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 e0b8c695..908cdc71 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 c8874fd0..9ae1a2f1 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 3ee4ecd4..2bfd7882 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 3f95e6d2..058d466e 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 0b123919..11e029d2 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 67b3ec1c..2321c2f6 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 a987c8f8..d07ba11c 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 8cb42759..8d7f3aa2 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 0796b339..8914e210 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 a672de18..47138ffb 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 f4f79268..a816133a 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 aa65219d..518f12da 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 97dafe2b..7329c8f5 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 bf85fa76..9a486b4b 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 df103fd1..87cd6e55 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 fc51a683..3c23ba3d 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 83659e77..50a19270 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 752226ee..c5699201 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 42da84fa..7f013d35 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 770f4274..54b4d5d2 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 b034ea58..5ac7cf26 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 a672de18..47138ffb 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 8dbb2f55..81377c10 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 b04b544a..7f72cea0 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 f8231f4e..e299a8de 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 0568f0bf..d8aa4df1 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 00000000..970768c2 --- /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 ddfbc1dd..b5214683 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 fcea1cd7..cced0266 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 908cdc71..547ff427 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 ea4ce831..b29d3a04 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 9ae1a2f1..c8874fd0 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 2bfd7882..3ee4ecd4 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 058d466e..3f95e6d2 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 47138ffb..a672de18 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 edfaddb6..d61b5694 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 bb78df88..d8ae92df 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 11e029d2..1fa39320 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 50a19270..1c084a06 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 5d516ad6..a7e8b6ee 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 547ff427..df0a104f 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 fdb945d3..ed6da5af 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 386da9a1..ae6dd453 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 6077031b..c88ccc85 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 a672de18..47138ffb 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 f59e32e9..cf4c4dd4 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 9d400d07..e83bb4f4 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 145b10cc..686bffc9 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 81ffacf3..f6e1b7f5 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 87cd6e55..58ef299f 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 3c23ba3d..84a2f5ed 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 1c084a06..6e9d1d2d 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 c5699201..752226ee 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 7f013d35..42da84fa 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 54b4d5d2..770f4274 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 5ac7cf26..b034ea58 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 47138ffb..a672de18 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 81377c10..8dbb2f55 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 7f72cea0..b04b544a 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 e299a8de..e66df8dc 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 bf85fa76..9a486b4b 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 1de12549..512277d4 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 ae6dd453..89a74708 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 89702c53..29d430ce 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 bbd6f96c..95673b69 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 29d2add9..9a5e42dc 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 5799adcf..d3e8a85e 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 bf85fa76..9a486b4b 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 53b4e3ee..a81c89da 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 7e90fc63..65cc691c 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 40e72097..df55d907 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 a672de18..47138ffb 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 b47c2517..6b5b2916 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 477db069..c84c8d0b 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 bf85fa76..9a486b4b 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 5a449aab..aa68c261 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 686bffc9..d62f0b6a 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 79680a6a..0285d07b 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 a672de18..47138ffb 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 992e7dfe..db256276 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 12a67dfd..f3e9c49e 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 f498f05d..635f06c5 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 132c17b1..0870d844 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 d07ba11c..77577fdc 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 8d7f3aa2..e67ccd67 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 8914e210..0796b339 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 47138ffb..a672de18 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 a816133a..f4f79268 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 518f12da..aa65219d 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 c5ee5e81..e85cf8df 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 6e9d1d2d..f8ce2778 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 da481699..e33f5ebd 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 512277d4..b7eba922 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 ed6da5af..4fb28da2 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 89a74708..635902ab 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 c88ccc85..6077031b 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 29d430ce..89702c53 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 95673b69..bbd6f96c 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 9a5e42dc..29d2add9 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 47138ffb..a672de18 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 cf4c4dd4..f59e32e9 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 e83bb4f4..9d400d07 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 d3e8a85e..e65766c0 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 1bbf8ab2..80d936bd 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 8453528a..9b832be3 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 d62f0b6a..bc9a9f48 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 86d31054..daef7939 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 62ccb64c..642d051d 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 12fec320..ce4769c6 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 93f4c989..ee8bb5db 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 e67ccd67..d6e9776d 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 635902ab..21139f73 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 3242c815..00000000 --- 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 dfe720b1..b75946f4 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 65cc691c..2e09403f 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 20610f25..e9a2f446 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 9ecf2df1..2c478d8c 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 31dd7b5b..0e9d987e 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 b9fa0a9f..4b94ae46 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 1ceed13d..1bd86ec2 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 bf85fa76..9a486b4b 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 8447324a..8fe73539 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 80d936bd..75357a63 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 794a96e5..98bb2ef0 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 a672de18..47138ffb 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 ffde8f59..c405bd66 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 feddb411..058dbe0e 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 d241d520..a6d18370 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 9b832be3..0ee88735 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 aa68c261..aec30565 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 bc9a9f48..1a572b8e 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 0285d07b..79680a6a 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 daef7939..86d31054 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 642d051d..62ccb64c 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 ce4769c6..12fec320 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 47138ffb..a672de18 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 db256276..992e7dfe 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 f3e9c49e..12a67dfd 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 ee8bb5db..c3edde85 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 00000000..5fd34e94 --- /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 b75946f4..b67501a5 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 a81c89da..3734714e 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 2e09403f..4129d6ca 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 df55d907..40e72097 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 e9a2f446..20610f25 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 2c478d8c..9ecf2df1 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 0e9d987e..31dd7b5b 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 47138ffb..a672de18 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 6b5b2916..b47c2517 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 c84c8d0b..477db069 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 4b94ae46..7e8958c3 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 1a572b8e..1c3ef595 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 f7312526..4895c0f6 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 877b8188..21158afc 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 b5b424b2..c358a8a1 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 9ccf057a..92acd020 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 4129d6ca..1014a65b 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 1bd86ec2..df331f0b 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 a7af4b22..f04d17b9 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 89f4bbcb..6d98c84a 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 8fe73539..8fdddae6 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 75357a63..610be7c0 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 98bb2ef0..794a96e5 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 47138ffb..a672de18 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 c405bd66..ffde8f59 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 058dbe0e..feddb411 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 76101b49..48183ae4 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 1c3ef595..7fdefa2c 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 f94c2813..2008a266 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 d6e9776d..e77e2d61 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 5e927528..0267b5d0 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 66415443..05d635ba 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 abdd1b8e..617a48fe 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 b649810f..d5943379 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 024257b4..05468d8b 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 4895c0f6..d6bbb924 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 ba8baf8e..5fec5aac 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 922a3359..d5b61b88 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 93d40919..2902ccab 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 8e48f6d1..ef211ba0 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 689c00f3..0c8c8c7a 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 e6a9d7da..3952ff18 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 7329c8f5..2bc44385 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 c5073301..59934efe 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 d8aa4df1..eb888f8b 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 377b5a14..f0f8d953 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 df0a104f..b48e4b1d 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 21139f73..d7c06b53 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 1014a65b..c7a62a48 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 f93aa133..5baa23e4 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 a9abfe14..d5271664 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 df331f0b..5f045aaf 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 610be7c0..9b212fb7 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 75d06d22..6c4ae1ae 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 ec73856e..67c93d14 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 831bba3d..56a773e7 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 98a2365f..74e757eb 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 05468d8b..d14775ce 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 d6bbb924..ecbe95e2 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 5fec5aac..ba8baf8e 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 d5b61b88..922a3359 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 2902ccab..93d40919 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 ef211ba0..8e48f6d1 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 5593a881..b35fb935 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 7b790d36..6d85b991 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 5f045aaf..13317435 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 ecbe95e2..7dcf24a9 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 79f3e3e2..2458aa72 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 97247e83..9acb9171 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 e40acee7..bd437168 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 712a0f1e..c5bcd032 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 9a486b4b..25b4603d 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 845a2220..a4d167f5 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 c358a8a1..e964cc06 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 4c783827..e8ac7ef1 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 acece68f..c5d2228f 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 92acd020..55b2bd06 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 339c9a3c..6b4e21de 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 a672de18..47138ffb 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 cd50e9a1..efcd3bad 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 6e7dc90f..3ef823f4 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 13317435..a30eaf9e 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 7cc6a513..bd0f9d18 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 83c8b771..00000000 --- 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 a6390189..05e7cef2 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 05d635ba..c4e945d2 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 5daabdc2..00000000 --- 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 3a5888fc..ae739d5d 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 00000000..83c8b771 --- /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 c4e945d2..f5a2b030 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 00000000..5daabdc2 --- /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 ae739d5d..3a5888fc 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 7cc6a513..bd0f9d18 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 d7736c82..b0deaa50 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 2d457997..66b6ab44 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 e964cc06..c358a8a1 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 80f95ef3..00000000 --- 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 55b2bd06..e7f5fef4 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 5d516ad6..a7e8b6ee 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 f556973e..c950b8d7 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 3c145305..b1bc573f 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 e4a06d74..a003c7b1 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 eb176205..dcc7b2a7 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 7cc6a513..bd0f9d18 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 ae8e19da..987a63f5 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 6c4ae1ae..c389e115 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 335c98aa..2be51dd9 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 647eab77..bac3538d 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 598b23cd..61e166aa 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 9ac180b1..9c53346e 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 a672de18..47138ffb 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 586e485d..ddaba77f 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 c8ba076a..fe631f91 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 77eb0206..c4ea6c69 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 9a486b4b..25b4603d 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 fda2bbfb..00000000 --- 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 93936ddf..9827369f 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 2008a266..ae07c0d1 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 0413b973..3ceda121 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 ab0e08fd..3e06a44e 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 b596a588..b30a6b15 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 e8e9d2ad..c3716a6a 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 a672de18..47138ffb 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 e6d5d15b..b36adff9 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 29398c39..c5d5bca4 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 a352cc4b..777af468 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 f5a2b030..05d635ba 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 66b6ab44..2d457997 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 170b2e9a..00000000 --- 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 987a63f5..06fd9515 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 c389e115..a4fef0b8 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 2be51dd9..335c98aa 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 bac3538d..647eab77 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 61e166aa..598b23cd 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 9c53346e..9ac180b1 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 47138ffb..a672de18 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 ddaba77f..586e485d 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 fe631f91..c8ba076a 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 c4ea6c69..77eb0206 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 67c93d14..ec73856e 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 00000000..fda2bbfb --- /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 9827369f..169f9d94 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 ae07c0d1..0f7f9993 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 3ceda121..0413b973 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 3e06a44e..ab0e08fd 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 b30a6b15..b596a588 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 c3716a6a..e8e9d2ad 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 47138ffb..a672de18 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 b36adff9..e6d5d15b 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 c5d5bca4..29398c39 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 777af468..a352cc4b 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 00000000..170b2e9a --- /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 a4fef0b8..51ae3e30 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 9a486b4b..25b4603d 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 72f9ad71..8f098623 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 9946d12a..319456e0 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 a672de18..47138ffb 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 4b7f1329..c3ddc6d5 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 3bfd8e9b..b4ff2ffe 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 0f7f9993..f94c2813 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 7cc6a513..bd0f9d18 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 417afaab..b5b1470b 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 21158afc..d29ef07a 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 c5d2228f..e6a745c2 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 6b4e21de..339c9a3c 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 a7e8b6ee..5d516ad6 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 c950b8d7..f556973e 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 b1bc573f..3c145305 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 a003c7b1..e4a06d74 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 47138ffb..a672de18 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 efcd3bad..cd50e9a1 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 3ef823f4..6e7dc90f 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 dcc7b2a7..eb176205 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 7cc6a513..bd0f9d18 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 e754d1f8..0ae8d790 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 d5271664..dd2e0b98 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 cd363745..eb14b860 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 5d516ad6..a7e8b6ee 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 b8392fab..dec65081 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 af214aaf..e1eb20c5 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 17ad9726..19ed967c 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 650fbf03..ef8b816c 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 b93014b6..52d73787 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 b6836b5d..cacdc07c 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 eed8d4d1..4e15b1a3 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 9d4535f1..d8215416 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 35970ca7..65eff94d 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 7c83a239..c03bd8d8 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 ec7ff451..1bd029cc 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 ec7ff451..1bd029cc 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 ea010118..48fee421 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 9b2f8d96..b0e69ab1 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 d787a5ef..7b2660a2 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 d78486b0..dfa21f2e 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 e27f1bba..42e9d9bd 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 9dac2f6c..8af3b6fc 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 9ea42953..80bc4519 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 2af210a4..72fdf8b7 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 ebf17c52..02f134c7 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 3616f4e3..e85bb18e 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 78f5f5d8..5f2a7412 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 4dbcc02c..35de4dcd 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 269a58c9..cdcbeb58 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 a672de18..47138ffb 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 3a458a7d..25573dcc 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 b1329ba8..eaab4a47 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 c7e6f81a..8a789b63 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 b1f43c09..77aad43f 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 16a5e3d7..441c4f03 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 220ff95c..c293a3dd 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 e2f6501e..eb557424 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 ab75cccf..d4d5b16c 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 13f521eb..d02d9f1a 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 127a823f..3d185dfb 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 51ae3e30..6c4ae1ae 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 8f098623..2d8b9c4d 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 ec73856e..5e28fe4f 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 319456e0..9946d12a 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 47138ffb..a672de18 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 c3ddc6d5..4b7f1329 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 b4ff2ffe..3bfd8e9b 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 f94c2813..2008a266 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 d29ef07a..21158afc 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 0ae8d790..c35ca08f 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 dd2e0b98..c3b631ef 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 eb14b860..cd363745 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 a7e8b6ee..5d516ad6 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 dec65081..b8392fab 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 e1eb20c5..af214aaf 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 19ed967c..17ad9726 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 ef8b816c..650fbf03 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 52d73787..b93014b6 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 cacdc07c..b6836b5d 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 4e15b1a3..eed8d4d1 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 d8215416..9d4535f1 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 65eff94d..35970ca7 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 c03bd8d8..7c83a239 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 1bd029cc..ec7ff451 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 1bd029cc..ec7ff451 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 48fee421..ea010118 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 b0e69ab1..9b2f8d96 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 7b2660a2..d787a5ef 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 dfa21f2e..d78486b0 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 42e9d9bd..e27f1bba 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 8af3b6fc..9dac2f6c 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 80bc4519..9ea42953 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 72fdf8b7..2af210a4 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 02f134c7..ebf17c52 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 e85bb18e..3616f4e3 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 5f2a7412..78f5f5d8 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 35de4dcd..4dbcc02c 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 cdcbeb58..269a58c9 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 47138ffb..a672de18 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 25573dcc..3a458a7d 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 eaab4a47..b1329ba8 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 8a789b63..c7e6f81a 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 77aad43f..b1f43c09 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 441c4f03..16a5e3d7 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 c293a3dd..220ff95c 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 eb557424..e2f6501e 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 d4d5b16c..ab75cccf 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 d02d9f1a..13f521eb 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 3d185dfb..127a823f 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 00000000..80f95ef3 --- /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 e7f5fef4..dcd9de23 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 c3b631ef..d5271664 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 9acb9171..ab412afa 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 61271fef..346a8011 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 a30eaf9e..416ab96f 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 44d4e196..82f4fd82 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 e54064b1..d387f550 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 64abccc9..670ab129 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 dcf709da..fb4125eb 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 d921d6c5..6a871dc9 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 2982f0fa..406aec14 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 12580dc3..8b6a4fce 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 2b80e139..5aee9290 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 88ba06ed..e3c20ea9 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 23d4b527..62cf9445 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 c5bcd032..313af2c5 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 cf231d88..a72d29be 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 ab412afa..74c65220 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 6a871dc9..9f89563d 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 c63e7a30..b1f4e624 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 e012c9a1..44b5b490 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 9bad0722..f3e314e7 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 a72d29be..dc75dbd4 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 74c65220..866902b3 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 9f89563d..85465193 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 313af2c5..fa6fcebb 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 78e8880f..551dc1fb 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 cdac97f9..a2d4cfaf 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 bd0f9d18..00000000 --- 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 b5b1470b..dfcb2477 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 21158afc..b8f03a0d 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 6ad31870..65a770d1 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 6714b2fe..4da7d7ab 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 30b548ee..f7d539ed 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 faff9cff..18152b19 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 96bd4655..e46481c2 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 558511bf..e9e55ce1 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 bd0f9d18..00000000 --- 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 b0deaa50..66e4af46 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 2d457997..6a9a6195 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 6ad31870..65a770d1 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 bd9a9883..2c6281a5 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 016b1a8d..1c618d55 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 196d1063..4d4680eb 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 3552ea6b..5eed4e5d 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 977f4361..d961394f 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 a4d167f5..fc1c4d76 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 c358a8a1..d34e5295 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 e62025cb..9b7dad77 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 54aaf6e1..61036269 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 43bdc757..1d53a307 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 4c19e13e..ecbe542a 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 7cc6a513..00000000 --- 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 dc404466..ee961dec 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 2571a6a8..5c10515c 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 6ad31870..65a770d1 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 dfcb1b55..43d47a40 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 069ac0fb..1fb5c6d9 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 abee56f2..32de7815 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 fb5e432a..6be28c0e 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 81c35f81..3392b5d8 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 e6a745c2..92d1177b 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 dcd9de23..761bc797 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 f556973e..316d764d 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 3c145305..18e1ba3b 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 e4a06d74..73e4e724 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 cd50e9a1..b0c887fb 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 9a486b4b..00000000 --- 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 541f9d06..69a63449 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 eb888f8b..7f7f51bf 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 6ad31870..65a770d1 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 09b85148..28dec420 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 d9cfdcb4..0fc7ac53 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 8642b1c4..54d1b71a 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 04b7885a..07ab6fd2 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 0b0d4c66..7ae3fae3 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 7cc6a513..00000000 --- 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 c8860343..d63bad96 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 f0f8d953..c08db9d5 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 6ad31870..65a770d1 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 1f1c3922..84b82b72 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 8ac9a4a3..e0339ae3 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 844682e5..cd075e67 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 f507995c..92e1027e 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 1607637e..f8ee64dc 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 9a486b4b..00000000 --- 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 cced0266..2b5f7f62 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 b48e4b1d..fbcb3ea4 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 6ad31870..65a770d1 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 ae58eccf..d4847be5 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 c8874fd0..ab58964d 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 3ee4ecd4..0c55469d 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 3f95e6d2..b72f13b9 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 d61b5694..eb853982 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 9a486b4b..00000000 --- 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 4fb28da2..44413c22 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 d7c06b53..b0fad6c6 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 6ad31870..65a770d1 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 91a46d4a..ff5c73ad 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 89702c53..c1c13016 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 bbd6f96c..6178e151 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 29d2add9..7300ff6d 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 f59e32e9..097c8e84 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 9a486b4b..00000000 --- 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 3734714e..49d52ab3 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 c7a62a48..6c797759 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 6ad31870..65a770d1 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 f6786402..38ba266f 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 20610f25..af5446b2 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 9ecf2df1..4eb435c3 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 31dd7b5b..8e86b91b 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 b47c2517..83a9258e 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 7cc6a513..00000000 --- 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 d4bcdacb..896f8756 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 33fa973b..e6952885 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 6ad31870..65a770d1 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 00bad96c..8946d5ee 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 de5e0061..b2acaef2 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 6217cebe..c02fbb6f 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 e6837f6d..e5dd1c6d 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 0fe97f4b..82acb636 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 7cc6a513..00000000 --- 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 c31761d0..19ef45e6 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 5baa23e4..64cafdaf 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 6ad31870..65a770d1 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 1f9c2792..ec0a11e8 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 7586d2d8..d25a83ee 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 64c20855..6397c466 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 254e52a2..dc482c6b 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 d365caff..c4029e23 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 1b5444f6..ab14b3aa 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 ca6b229f..85a63258 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 295b76f9..57fe70a5 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 303712d4..7c48e00d 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 274ea1d6..60c4cf2b 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 1e067b3b..a4664a15 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 df86257f..48a918f7 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 5239e47d..6cd0b6e3 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 bd0f9d18..00000000 --- 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 c35ca08f..4bfe324c 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 d5271664..588b3d1a 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 6ad31870..65a770d1 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 3d77bee0..a4febf8e 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 b6836b5d..c851f544 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 35970ca7..688c7e19 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 269a58c9..043eca0d 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 3a458a7d..c3cb51d2 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 3d9b0d60..e562781b 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 7ed46f61..a39b59e0 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 2458aa72..2968adb5 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 866902b3..c23652df 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 346a8011..49437378 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 416ab96f..4db94359 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 6ad31870..65a770d1 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 880997f5..b241d1bf 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 d4c7fb28..93608c46 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 85465193..48da0ab5 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 dc75dbd4..35766541 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 9a486b4b..00000000 --- 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 8fdddae6..62d55571 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 9b212fb7..2781d57a 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 6ad31870..65a770d1 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 dc229a73..ecbbd3f1 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 6af3acb9..e920f9e9 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 426405c1..e8d2259b 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 6d918d9a..a1d5ec0f 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 ffde8f59..ef37efbb 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 bd0f9d18..00000000 --- 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 06fd9515..c6607b59 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 6c4ae1ae..be5288d9 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 6ad31870..65a770d1 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 c7d130ac..b5698620 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 647eab77..b467b75c 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 598b23cd..7d17a314 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 9ac180b1..43c33229 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 586e485d..d02dd57c 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 25b4603d..00000000 --- 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 2d8b9c4d..65eaacb3 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 5e28fe4f..3f21a390 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 6ad31870..65a770d1 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 d440703e..c7559372 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 250bbbdb..7def4540 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 8608c405..fd437249 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 f586e8ec..c6995b80 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 4b7f1329..40d3affa 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 9a486b4b..00000000 --- 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 aec30565..ad685dc8 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 7fdefa2c..01057dbb 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 6ad31870..65a770d1 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 4739c021..7a68d312 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 86d31054..ab0127ea 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 62ccb64c..728baa52 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 12fec320..8e088d21 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 992e7dfe..496c9d4a 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 7cc6a513..00000000 --- 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 c12ef61e..316dcca8 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 e56d31ae..55a73656 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 6ad31870..65a770d1 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 197f6ae4..705faed2 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 e40a42a8..34c1621f 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 1f2016c3..db083ce5 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 9b684628..73073b0b 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 b10c084e..2a62d80b 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 25b4603d..00000000 --- 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 169f9d94..ae2e462d 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 2008a266..6bc04f5d 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 6ad31870..65a770d1 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 f6907f5c..4b83e029 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 ab0e08fd..828b27e2 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 b596a588..fa2a07ce 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 e8e9d2ad..ac88306f 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 e6d5d15b..a0ec7365 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 2321c2f6..00000000 --- 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 77577fdc..f81f7a9e 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 e77e2d61..af7d0d15 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 6ad31870..65a770d1 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 09794eb5..317ecfac 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 1a676679..a5180358 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 6dbdd12e..caa1af13 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 ac3ba1d0..b2815f45 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 f4f79268..d465cf58 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 7cc6a513..00000000 --- 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 04107d8d..674d3dfe 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 0267b5d0..93cb20d5 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 6ad31870..65a770d1 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 30d32229..cbb647da 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 f564d6ae..788a7dbb 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 c90c8606..a5bf94db 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 9f525480..a7ca3aeb 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 bdeeaa08..11cd0757 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 bd0f9d18..00000000 --- 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 05e7cef2..a88fac23 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 05d635ba..88d729b0 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 6ad31870..65a770d1 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 5a85d838..51439cdc 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 0f22763d..027fa826 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 b87492c5..163aa986 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 b54e9ddc..0381147b 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 7365dc0d..5649b043 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 7cc6a513..00000000 --- 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 a5b87ea3..ab07fc11 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 617a48fe..73ba4120 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 6ad31870..65a770d1 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 004ecb1c..da2e9de5 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 fb6e4df2..a77468ca 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 c8755d61..d82f40fb 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 d2c6290c..80e86a53 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 a56793c0..a1982cad 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 d5943379..00000000 --- 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 d14775ce..ef39dc6a 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 7dcf24a9..79bbf9d7 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 6ad31870..65a770d1 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 70b61eee..952ff499 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 aa0a2676..1bbb0bec 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 57715a74..49fa853f 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 1a7dc040..b19e9124 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 93d40919..0efc6fdd 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 7cc6a513..00000000 --- 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 0cf981cb..dac692d5 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 0c8c8c7a..b85aab13 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 6ad31870..65a770d1 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 fd85558f..ef66d32a 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 b0d68d3f..6dd6d3a8 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 cd296b89..2007c29c 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 45432d3e..db508a95 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 bdbb4cf6..2f979171 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 3952ff18..ef92c116 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 3376090f..ebdef83f 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 3ee48f71..6c8df9c3 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 32c84bfe..f9440389 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 1cde6cbe..7c5af1c7 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 7cc6a513..00000000 --- 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 fd28c21a..7f6ead4e 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 2bc44385..a02917f7 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 6ad31870..65a770d1 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 6c081560..7d692251 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 50e15445..8769591c 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 040d0ef3..8a2b6562 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 207bbb17..a68813e8 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 997ea7d0..726fb2bc 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 7cc6a513..00000000 --- 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 458a3728..3a935d7a 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 59934efe..e9331263 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 6ad31870..65a770d1 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 ba32b75e..56783666 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 3a33c2f1..ac0e2755 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 20503a7f..0d19bbee 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 516eb058..a18c2189 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 0503994a..db84d21c 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 9a486b4b..00000000 --- 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 84a2f5ed..a751603e 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 f8ce2778..251a62dd 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 6ad31870..65a770d1 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 9ad34ea2..eb6d6de8 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 42da84fa..18fac567 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 770f4274..8a3b2676 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 b034ea58..a362bea9 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 8dbb2f55..d4bec6f3 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[