batch-loader
batch-loader copied to clipboard
Incompatibility with graphql-ruby 2.0.18+
It seems there was a breaking change introduced in 2.0.18 that causes use BatchLoader::GraphQL to cause the following exception:
vendor/bundle/ruby/3.2.0/gems/graphql-2.0.19/lib/graphql/schema.rb:944:in `tracer': Can't add tracer after configuring a `trace_class`, use GraphQL::Tracing::LegacyTrace to merge legacy tracers into a trace class instead.
raise ArgumentError, "Can't add tracer after configuring a `trace_class`, use GraphQL::Tracing::LegacyTrace to merge legacy tracers into a trace class instead."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (ArgumentError)
from vendor/bundle/ruby/3.2.0/gems/batch-loader-2.0.1/lib/batch_loader/graphql.rb:10:in `use'
from vendor/bundle/ruby/3.2.0/gems/graphql-2.0.19/lib/graphql/schema.rb:243:in `use'
I'm also seeing this issue in my application. I am working around it for the moment by locking the graphql gem version to 2.0.17:
gem "graphql", "~> 2.0", "<= 2.0.17"
Is it broken specifically with that version, or with all onwards versions? (did graphql-rb revert this?)
There are other breaking changes too, with graphql 2.2.5, I see
An error occurred while loading /<<PKGBUILDDIR>>/spec/batch_loader/middleware_spec.rb.
Failure/Error: use GraphQL::Execution::Interpreter
NoMethodError:
undefined method `use' for GraphQL::Execution::Interpreter:Class
plugin.use(self)
^^^^
# /usr/share/rubygems-integration/all/gems/graphql-2.2.5/lib/graphql/schema.rb:317:in `use'
# /<<PKGBUILDDIR>>/spec/fixtures/graphql_schema.rb:37:in `<class:GraphqlSchemaWithInterpreter>'
# /<<PKGBUILDDIR>>/spec/fixtures/graphql_schema.rb:36:in `<top (required)>'
# /<<PKGBUILDDIR>>/spec/spec_helper.rb:12:in `require_relative'
# /<<PKGBUILDDIR>>/spec/spec_helper.rb:12:in `<top (required)>'
# /<<PKGBUILDDIR>>/spec/batch_loader/middleware_spec.rb:1:in `<top (required)>'
An error occurred while loading /<<PKGBUILDDIR>>/spec/batch_loader_spec.rb.
Failure/Error: query QueryType
GraphQL::Error:
Second definition of `query(...)` (QueryType) is invalid, already configured with QueryType
# /usr/share/rubygems-integration/all/gems/graphql-2.2.5/lib/graphql/schema.rb:418:in `query'
# /<<PKGBUILDDIR>>/spec/fixtures/graphql_schema.rb:31:in `<class:GraphqlSchema>'
# /<<PKGBUILDDIR>>/spec/fixtures/graphql_schema.rb:30:in `<top (required)>'
# /<<PKGBUILDDIR>>/spec/spec_helper.rb:12:in `require_relative'
# /<<PKGBUILDDIR>>/spec/spec_helper.rb:12:in `<top (required)>'
# /<<PKGBUILDDIR>>/spec/batch_loader_spec.rb:1:in `<top (required)>'
An error occurred while loading /<<PKGBUILDDIR>>/spec/graphql_spec.rb.
Failure/Error: query QueryType
GraphQL::Error:
Second definition of `query(...)` (QueryType) is invalid, already configured with QueryType
# /usr/share/rubygems-integration/all/gems/graphql-2.2.5/lib/graphql/schema.rb:418:in `query'
# /<<PKGBUILDDIR>>/spec/fixtures/graphql_schema.rb:31:in `<class:GraphqlSchema>'
# /<<PKGBUILDDIR>>/spec/fixtures/graphql_schema.rb:30:in `<top (required)>'
# /<<PKGBUILDDIR>>/spec/spec_helper.rb:12:in `require_relative'
# /<<PKGBUILDDIR>>/spec/spec_helper.rb:12:in `<top (required)>'
# /<<PKGBUILDDIR>>/spec/graphql_spec.rb:1:in `<top (required)>'
No examples found.