Update dependency graphql to v2
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
graphql (source, changelog) | ironbank-rubygems | major |
1.13.20 -> 2.1.7
|
Release Notes
rmosolgo/graphql-ruby (graphql)
v2.1.7
New features
- Make
NullContext
inherit fromContext
, to make typechecking easier #4709 - Accept a custom
Schema.query_class
to use for executing queries #4679
Bug fixes
- Default
reauthorize_scoped_objects
to false #4720 - Fix
subscriptions.trigger
with custom enum values #4713 - Fix
backtrace: true
with GraphQL-Pro@defer
#4708 - Omit
to_h
from Input Object validation error message #4701 - When trimming whitespace from block strings, remove first and last lines that contain only whitespace #4704
v2.1.6
Breaking Changes
- The parser cache is now opt-in. Add
config.graphql.parser_cache = true
to your Rails environment setup to enable it. #4648
New features
- New
ISO8601Duration
scalar #4688
Bug fixes
- Trace: fix custom trace mode inheritance #4693
v2.1.5
Bug fixes
- Logger: Fix
Schema.default_logger
when Rails is present but doesn't have a logger #4686
v2.1.4
New features
- Add
Query#logger
#4674 - Lookahead: Add
with_alias:
option #2912 - Improve support for
load_application_object_failed
#4667
Bug fixes
- Execution: Fix runtime loop in some cases with fragments #4684
- Fix
Connection#initialize
outside of execution #4675 - Fix ParseError in
Subscriptions#trigger
#4673 - Mongo: don't load all records in hasNextPage #4671
- Interfaces: fix
definition_methods
when interfaces implement other interfaces #4670 - Migrate
NullContext
to use the built-in Singleton module #4669 - Speed up type lookup #4664
- Fix
ScopeExtension#after_resolve
outside of execution #4685 - Speed up
one_of?
checks #4680
v2.1.3
Bug fixes
- Tracing: fix legacy tracers added to
GraphQL::Schema
#4663 - Add
racc
as a dependency because it's not included by default in Ruby 3.3 #4661
v2.1.2
New features
- Depth: accept
count_introspection_fields: false
#4658 - Dataloader: add
get_fiber_variables
andset_fiber_variables
#4593 - Trace: Add
Schema.default_trace_mode
#4642
Bug fixes
- Fix merging results after calling directives #4639 #4660
- Visibility: don't reveal implementors of hidden abstract types #4589
- Bump required Ruby version to 2.7 since numbered block arguments are used #4659
-
hash_key:
: use the configured hash key when the underlying Hash has a default value Proc #4656
v2.1.1
New features
- Mutations:
HasSingleInput
provides Relay Classic-likeinput: ...
argument behavior #4581 - Add
@specifiedBy
default directive #4633 - Analysis: support
visit?
hook to skip visit but still return a value - Add
context.scoped
for a long-lived reference to the current scoped context #4605
Bug fixes
- Sanitized printer: Correctly print enum variable defaults #4652
- Schema printer: use
extend schema
when the schema has directives #4647 - Performance: pass runtime state through interpreter code #4621
- Performance: add
StaticVisitor
for faster AST visits #4645 - Performance: faster field lookup #4626
- Improve generator templates #4627
- Dataloader: clear cache between root mutation fields #4617
- Performance: Improve argument checks #4622
- Remove unused legacy connection code #4606
v2.1.0
Breaking changes
- Visitor: legacy-style proc-based visitors are no longer supported #4577 #4583
- Deprecated
GraphQL::Filter
is removed #4325 - Language::Printer has been re-written to append to a buffer; custom printers will need to be updated #4394
New features
- Authorization: Items in a list can skip object-level
.authorized?
checks if the type is configured withreauthorize_scoped_objects(false)
#3994 - Subscriptions:
unsubscribe(...)
accepts a value to be used to return a result along with unsubscribing #4283 - Language::Printer is much faster #4394
v2.0.27
New features
- Validators: Support
%{value}
in custom messages #4601
Bug fixes
- Resolvers: Support
return false, nil
fromready?
andauthorized?
#4585 - Enums: properly load directives from Schema IDL #4596
- Language: faster scanner #4576
- Language: support fields and arguments named
"null"
#4586 - Language: fix block string quote unescaping #4580
- Generator: use generated node type in Relay-related fields #4598
v2.0.26
Bug fixes
- Datadog Tracing: fix LocalJumpError #4579
v2.0.25
New features
- Tracing: add trace modes #4571
- Dataloader: add
Source#result_key_for
for customizing cache keys in sources #4569
Bug fixes
- Tracing: Support multiple tracing platforms at once #4543
v2.0.24
New features
-
Schema::Object.wrap
can be used to customize how objects are (or aren't) wrapped byGraphQL::Schema::Object
instances at runtime #4524 -
Query
: accept astatic_validator:
option in#initialize
to use instead of the default validation configuration.
Bug fixes
- Performance: Reduce memory usage when adding types to a schema #4533
- Performance,
Dataloader
: when loading specific keys, only run dataloader until those specific keys are resolved #4519
v2.0.23
New features
- Printer: print extensions in SDL #4516
- Trace: accept trace instances during query execution #4497
- AlwaysVisible: Make a way to bypass type visibility #4442, #4491
Bug fixes
- Tests: fix assertion for Ruby 3.3.0-dev #4515
- Performance: improve fragment possible type lookup #4506
- Docs: document Timeout can handle floats #4505
- Performance: use a dedicated object for field extension state #4401
- Backtrace: fix
backtrace: true
with other trace modules #4505 - Handle
context.warden
being nil #4503 - Dev: disable Minitest::Reporters for RubyMin #4494
- Trace: fix compatibility with inheritance #4487
- Context: fix NullContext compatibility with fetch, dig and key? #4483
v2.0.22
New features
- Warden: manually instantiating doesn't require a
filter
instance #4462
Bug fixes
- Enum: fix procs for enum values #4474
- Lexer: force UTF-8 encoding #4467
- Trace: inherit superclass
trace_options
#4470 - Dataloader: properly run mutations in sequence #4461
- NotificationsTrace: Add
execute_multiplex.graphql
event #4460 - Fix
Context#dig
when called with one key #4458 - Performance: Use a plain hash for selection sets at runtime #4453
- Performance: Memoize current trace #4450, #4452
- Performance: Pass is_non_null to runtime check #4449
- Performance: Use
compare_by_identity
on some runtime caches - Properly support nested queries (fix
Thread.current
clash) #4445
v2.0.21
Deprecations
- Deprecate
GraphQL::Filter
(usevisible?
methods instead) #4424
New features
- PrometheusTracing: support histograms #4418
Bug fixes
- Backtrace: improve compatibility with
trace_with
#4437 - Consolidate internally-used empty value constants #4434
- Fix some warnings #4422
- Performance: improve runtime speed #4436 #4433 #4428 #4430 #4427 #4399
- Validation: fix inline fragment selection on scalar #4429
-
@oneOf
: print definition in the SDL when it's used - SDL: load schema directives when they're used
- Appsignal tracing: Fix
resolve_type
definition
v2.0.20
Bug fixes
-
.resolve_type
: fix returning[Type, false]
from resolve_type #4412 - Parsing: improve usage of
GraphQL.default_parser
#4411 - AppsignalTrace: implement missing methods #4390
- Runtime: Fix
current_depth
method in some lazy lists #4386 - Performance: improve
Object
object shape #4365 - Tracing: return execution errors raised from field resolution to
execute_field
hooks #4398
v2.0.19
Bug fixes
- Scoped context: fix
context.scoped_context.current_path
#4376 - Tracing: fix
tracer
inheritance in Schema classes #4379 - Timeout: fix
Timeout
plugin when other tracers are used #4383 - Performance: use Arrays instead of
GraphQL::Language::Token
s when scanning #4366
v2.0.18
Breaking Changes
- Tracing:
"execute_field"
events on fields defined on interface types will now receive the interface type asdata[:owner]
instead of the current object type. To get the old behavior, usedata[:object].class
instead. #4292
New features
- Add
TypeKind#leaf?
#4352
Bug fixes
- Tracing: use the interface type as
data[:owner]
instead of the object type #4292 - Performance: improve Shape compatibility of
GraphQL::Schema::Field
#4360 - Performance: improve Shape compatibility of
GraphQL::Schema::Warden
#4361 - Performance: rewrite the token scanner in plain Ruby #4369
- Performance: make
deprecation_reason
faster #4356 - Performance: improve lazy value resolution in execution #4333
- Performance: create
current_path
only when the application needs it #4342 - Performance: add
GraphQL::Tracing::Trace
as a lower-overhead tracing API #4344 - Connections: fix
hasNextPage
for already-loaded ActiveRecord Relations #4349
v2.0.17.2
Bug fixes
- Unions and Interfaces: support returning
[type_module, false]
fromresolve_type
#4413
v2.0.17.1
Bug fixes
- Tracing: restore behavior returning execution errors raised during field resolution #4402
v2.0.17
Bug fixes
- Unions and Interfaces: support returning
[type_module, false]
fromresolve_type
#4413
v2.0.16
Breaking changes
-
Union
: Only accept Object types inpossible_types
(previously, other types were also accepted, but this was against the spec) #4269
New features
- Rake: support introspection query options in the
RakeTask
#4247 - Subscriptions: Merge
.trigger(... context: { ... })
into the query context when running updates #4242
Bug fixes
- Make BaseEdge and subclasses return true for
.default_relay?
#4272 - Validation: return a proper error for duplicate-named fragments when used indirectly #4268
- Don't re-apply
scope_items
tonodes { ... }
oredges { ... }
arrays #4263 - Fix
Concurrent::Map
initialization to prevent race conditions - Speed up scoped context lookup #4245
- Support overriding built-in context keys #4239
- Context: properly
dig
into:current_arguments
#4249
v2.0.15
New features
- SDL: support extensions on the schema itself #4203
- SDL: recognize
.graphqls
files in.from_definition
#4204 - Schema: add a reader method of
TypeMembership#options
#4209
Bug fixes
- Node Behaviors: call the id-from-object hook with the type definition, not the type instance #4233
- RelayClassicMutation: add a period to the generated description of the payload type #4229
- Dataloader: make scoped context work with Dataloader #4220
- SDL: fix parsing repeatable directives #4218
- Lookahead: reduce more allocations in
.selects?
#4212 - Introspection Query: strip blank lines from generated query strings #4208
- Enums: Add error handling to result coercion #4206
- Lookahead: add
selected_type:
to.selects?
#4194 - Lookahead: fix
.selects?
on unions #4193 - Fields: use field-local
connection:
config over resolver config #4191
v2.0.14
New features
- Input Objects: support
one_of
for input objects that allow exactly one argument #4184 - Dataloader: add
source.merge({ ... })
for adding objects to dataloader source caches #4186 - Validation: generate new schemas with a suggested
validate_max_errors
of 100 #4179
Bug fixes
- Lookahead: improve performance when field names are given as symbols #4189
- Runtime: simplify some internal code #4183
- Datadog tracing: remove deprecated options #4159
v2.0.13
New features
- Fields: add configuration methods for
default_value
andprepare
#4156 - Static validation: merge directive errors when they're on the same location or directive
Bug fixes
- Subscriptions: properly use the given
.trigger(... context: )
for determining subscription root field visibility #4160 - Fix fields that use
hash_key:
and have a falsy value for that key #4132 - Variable validation: respect
validate_max_error
limit - Performance: use
Array#+
to add objects during execution #4142
v2.0.12
New features
- Support returning
[Type, nil]
fromresolve_type
#4130
Bug fixes
- SDL: Don't print empty braces for input objects with no arguments #4138
- Arguments: always call
prepare
before loading objects based on ID (loads:
) #4128 - Don't support re-assigning
Query#validate=
after validation has run #4127
v2.0.11
New features
- Support full unicode range #4090
Bug fixes
- Subscriptions: support overriding subscriptions in subclasses #4108
- Schema: support types with duplicate names and cyclical references #4107
- Connections: don't exceed application-applied
LIMIT
withmax_page_size
#4104 - Field: add
Field#relay_nodes_field
config reader #4103 - Remove partial
opentelementry
implementation, oops #4086 - Remove unused method
Lazy.resolve
v2.0.9
New features
- Connections: use
Schema.default_page_size
,Field#default_page_size
, orResolver.default_page_size
when one of them is available and nofirst
orlast
is given #4081 - Tracing: Add
OpenTelementryTracing
#4077
Bug fixes
- Field usage analyzer: don't crash on null input objects #4078
- Complexity: properly handle
ExecutionError
s raised inprepare:
hooks #4079
v2.0.8
New Features
- Fields: return
fallback_value:
when method or hash key field resolution fails #4069 - Support
hash_key:
lookups on Hash-like objects #4072 - Datadog tracing: support
prepare_span
hook for adding custom tags #4067
Bug fixes
- Fields: When
hash_key:
is given, populate#method_str
based on it #4072 - Errors: rescue errors raised when calling
.each
on list values #4052 - Date type: continue accepting dates without hyphens #4061
- Parser: properly parse empty type definitions #4046
v2.0.7
New Features
- Subscriptions: support
validate_update: false
to disable validation when running subscription updates #4039 - Expose duplicated name on
DuplicateNamesError
#4022
Bug Fixes
- Datadog: improve tracer #4038
-
hash_key:
try stringified hash key when resolving fields (this restores previous behavior) #4043 - Printer: Don't print empty field set when types have no fields (
{\n}
) #4042 - Dataloader: improve handoff between lazy resolution and dataloader resolution #4036
- Remove unused
Lazy::Resolve
module from legacy execution code #4035
v2.0.6
Bug fixes
- Dataloader: make multiplexes use custom dataloaders #4026
- ISO8601Date: properly accept
nil
as input #4025 - Mutation: fix error message when
ready?
returns an invalid result #4029 - ISO8601 scalars: add
specified_by_url
configs #4014 - Array connection: don't return all items when
before
is the first cursor #4012 - Introspection: fix typo
specifiedByUrl
->specifiedByURL
- Fields: fix
hash_key
to take priority over method lookup #4015
v2.0.5
Bug Fixes
- Resolvers: fix inheriting arguments when parent classes aren't hooked up directly to the schema #4006
v2.0.4
Bug fixes
- Fields: make sure
null:
config overrides a default from a resolver #4000
v2.0.3
Bug fixes
- Fields: make sure field configs override resolver defaults #3975
- Fix
Field#scoped?
when the field uses a resolver #3990 - Allow schema members to have multiple of
repeatable
directives #3986 - Remove some legacy code #3979 #9995
- SDL: fix indirect interface implementation when loading a schema #3982
- Datadog tracing: Support ddtrace 1.0 #3978
- Fix
Node
implementation when connection types include built-in behavior modules #3967 - Small stack trace size reduction #3957
v2.0.2
New features
- Validators: Support
%{value}
in custom messages #4601
Bug fixes
- Resolvers: Support
return false, nil
fromready?
andauthorized?
#4585 - Enums: properly load directives from Schema IDL #4596
- Language: faster scanner #4576
- Language: support fields and arguments named
"null"
#4586 - Language: fix block string quote unescaping #4580
- Generator: use generated node type in Relay-related fields #4598
v2.0.1
Bug fixes
- Scoped context: fix
context.scoped_context.current_path
#4376 - Tracing: fix
tracer
inheritance in Schema classes #4379 - Timeout: fix
Timeout
plugin when other tracers are used #4383 - Performance: use Arrays instead of
GraphQL::Language::Token
s when scanning #4366
v2.0.0
Breaking Changes
- None, ideally. If you have an application that ran without warnings on v1.13, you should be able to update to 2.0.0 without a hitch. If this isn't the case, please open an issue and let me know what happened! I plan to maintain 1.13 for a while in order to ensure a smooth transition.
- But, many legacy code components were removed, so if there are any more references to those, there will be name errors! See #3729 for a list of removed components.
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.