[graphql] Upgrade graphql gem to 2.0.x

Once &7734 (closed) is complete, which upgrades the graphql-ruby gem to 1.13.x and the new interpreter, we need to start the upgrade to 2.x, (which is currently at 2.0.27)

This version removes all the old code and pathways that supported pre-interpreter code, as talked about in https://github.com/rmosolgo/graphql-ruby/issues/3729

The upgrade should be much easier, though some early attempts showed that there are still some bumps to get past.

It's important to continue to pushing to get fully upgraded, so that we are fully based on the modern version, and don't continue to accidentally use deprecated code and pathways.

  • the DuplicateNamesError should be better fixed according to https://github.com/rmosolgo/graphql-ruby/issues/3919#issuecomment-1044816346, which effects a spec in spec/lib/gitlab/graphql/negatable_arguments_spec.rb
  • should be able to remove a code path in lib/gitlab/graphql/present/field_extension.rb
  • migrate our Gitlab::Graphql::GenericTracing to a class not built on GraphQL::Tracing::PlatformTracing, as that's a private API. See https://graphql-ruby.org/queries/tracing.html
  • support for fallback_value (e.g. default values for nulls) https://github.com/rmosolgo/graphql-ruby/issues/2783
Edited Sep 21, 2023 by Brett Walker
Assignee Loading
Time tracking Loading