ruby-rdf / sparql-client

SPARQL client for Ruby.
http://rubygems.org/gems/sparql-client
The Unlicense
112 stars 58 forks source link

Rails 7: uninitialized constant Sparql::Client #100

Closed s0rin closed 2 months ago

s0rin commented 2 months ago

After rails 6.1 to 7.1 upgrade the following error occurs

$ rails zeitwerk:check --trace
** Invoke zeitwerk:check (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute zeitwerk:check
Hold on, I am eager loading the application.
bin/rails aborted!
NameError: uninitialized constant Sparql::Client (NameError)

    @mod.const_get(@cname, false)
        ^^^^^^^^^^
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/cref.rb:91:in `const_get'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/cref.rb:91:in `get'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:173:in `block in actual_eager_load_dir'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/helpers.rb:47:in `block in ls'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/helpers.rb:25:in `each'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/helpers.rb:25:in `ls'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:168:in `actual_eager_load_dir'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:17:in `block (2 levels) in eager_load'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:16:in `each'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:16:in `block in eager_load'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:10:in `synchronize'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:10:in `eager_load'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader.rb:413:in `block in eager_load_all'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader.rb:411:in `each'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.16/lib/zeitwerk/loader.rb:411:in `eager_load_all'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/zeitwerk_checker.rb:6:in `check'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/tasks/zeitwerk.rake:29:in `block (2 levels) in <main>'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `block in execute'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `each'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `execute'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/task.rb:199:in `synchronize'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/task.rb:188:in `invoke'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:188:in `invoke_task'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `block (2 levels) in top_level'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `each'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `block in top_level'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:147:in `run_with_threads'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:132:in `top_level'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/commands/rake/rake_command.rb:27:in `block (2 levels) in perform'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:214:in `standard_exception_handling'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/commands/rake/rake_command.rb:27:in `block in perform'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/commands/rake/rake_command.rb:44:in `block in with_rake'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/rake_module.rb:59:in `with_application'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/commands/rake/rake_command.rb:41:in `with_rake'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/command.rb:156:in `invoke_rake'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/command.rb:73:in `block in invoke'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/command.rb:149:in `with_argv'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/command.rb:69:in `invoke'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/railties-7.1.3.4/lib/rails/commands.rb:18:in `<main>'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
/home/solinux/.rbenv/versions/3.3.3/lib/ruby/gems/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:4:in `<main>'
Tasks: TOP => zeitwerk:check

Please provide any indication how to fix this error.

s0rin commented 2 months ago

This error is related to a monkey patch for SPARQL client based on persistent connections for Net::HTTP which is not part of the official 'sparql-client' code, anyway is related to zeitwerk autoloading.