Skip to content

Upcoming Release Changes - #8327

Open
github-actions[bot] wants to merge 1 commit into
masterfrom
changeset-release/master
Open

Upcoming Release Changes#8327
github-actions[bot] wants to merge 1 commit into
masterfrom
changeset-release/master

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to master, this PR will be updated.

Releases

@graphql-tools/executor@2.0.0

Major Changes

  • #8346
    2273c21
    Thanks @ardatan! - This release adds GraphQL v17 support and aligns
    the existing executor implementation with the latest GraphQL v17 API changes. The following
    changes are included:

    • getAsyncHelpers is now available on GraphQLResolveInfo. Its track method is used whenever
      waitUntil is available, as in Yoga's
      Explicit Resource Management
    • getAbortSignal is now available on GraphQLResolveInfo, matching behavior that was already
      available in this executor implementation, as in Yoga's
      Execution Cancellation
    • GraphQLResolveInfo automatically aligns variableValues according to the GraphQL version for
      better compatibility. In GraphQL v17 and above, variableValues follows the wrapped shape
      ({ coerced, sources }) expected by GraphQL APIs. In GraphQL v16 and below, variableValues
      remains a flat map as in previous versions.
    • If your custom scalar resolvers define __serialize and __parseValue, they are automatically
      mapped to coerceOutputValue and coerceInputValue in GraphQL v17.
    • BREAKING: @graphql-tools/executor's getVariableValues now returns { variableValues }
      on success, where variableValues is a VariableValues object ({ coerced, sources }). On
      failure, it returns { errors }.
    • BREAKING: collectFields, shouldIncludeNode, getDeferValues, and collectSubFields now
      need a VariableValues object instead of Record<string, any> for the variableValues
      argument.
    • visitResult now internally normalizes ExecutionRequest.variables into a
      VariableValues-compatible shape ({ coerced, sources }) before traversing selections.

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0

@graphql-tools/utils@12.0.0

Major Changes

  • #8346
    2273c21
    Thanks @ardatan! - This release adds GraphQL v17 support and aligns
    the existing executor implementation with the latest GraphQL v17 API changes. The following
    changes are included:

    • getAsyncHelpers is now available on GraphQLResolveInfo. Its track method is used whenever
      waitUntil is available, as in Yoga's
      Explicit Resource Management
    • getAbortSignal is now available on GraphQLResolveInfo, matching behavior that was already
      available in this executor implementation, as in Yoga's
      Execution Cancellation
    • GraphQLResolveInfo automatically aligns variableValues according to the GraphQL version for
      better compatibility. In GraphQL v17 and above, variableValues follows the wrapped shape
      ({ coerced, sources }) expected by GraphQL APIs. In GraphQL v16 and below, variableValues
      remains a flat map as in previous versions.
    • If your custom scalar resolvers define __serialize and __parseValue, they are automatically
      mapped to coerceOutputValue and coerceInputValue in GraphQL v17.
    • BREAKING: @graphql-tools/executor's getVariableValues now returns { variableValues }
      on success, where variableValues is a VariableValues object ({ coerced, sources }). On
      failure, it returns { errors }.
    • BREAKING: collectFields, shouldIncludeNode, getDeferValues, and collectSubFields now
      need a VariableValues object instead of Record<string, any> for the variableValues
      argument.
    • visitResult now internally normalizes ExecutionRequest.variables into a
      VariableValues-compatible shape ({ coerced, sources }) before traversing selections.

@graphql-tools/schema@10.1.0

Minor Changes

  • #8346
    2273c21
    Thanks @ardatan! - This release adds GraphQL v17 support and aligns
    the existing executor implementation with the latest GraphQL v17 API changes. The following
    changes are included:

    • getAsyncHelpers is now available on GraphQLResolveInfo. Its track method is used whenever
      waitUntil is available, as in Yoga's
      Explicit Resource Management
    • getAbortSignal is now available on GraphQLResolveInfo, matching behavior that was already
      available in this executor implementation, as in Yoga's
      Execution Cancellation
    • GraphQLResolveInfo automatically aligns variableValues according to the GraphQL version for
      better compatibility. In GraphQL v17 and above, variableValues follows the wrapped shape
      ({ coerced, sources }) expected by GraphQL APIs. In GraphQL v16 and below, variableValues
      remains a flat map as in previous versions.
    • If your custom scalar resolvers define __serialize and __parseValue, they are automatically
      mapped to coerceOutputValue and coerceInputValue in GraphQL v17.
    • BREAKING: @graphql-tools/executor's getVariableValues now returns { variableValues }
      on success, where variableValues is a VariableValues object ({ coerced, sources }). On
      failure, it returns { errors }.
    • BREAKING: collectFields, shouldIncludeNode, getDeferValues, and collectSubFields now
      need a VariableValues object instead of Record<string, any> for the variableValues
      argument.
    • visitResult now internally normalizes ExecutionRequest.variables into a
      VariableValues-compatible shape ({ coerced, sources }) before traversing selections.

Patch Changes

  • Updated dependencies
    [2273c21,
    7fe0319]:
    • @graphql-tools/utils@12.0.0
    • @graphql-tools/merge@9.2.3

@graphql-tools/executor-apollo-link@2.0.13

Patch Changes

@graphql-tools/executor-envelop@4.0.13

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0

@graphql-tools/executor-legacy-ws@1.1.33

Patch Changes

@graphql-tools/executor-urql-exchange@1.0.35

Patch Changes

@graphql-tools/executor-yoga@3.0.43

Patch Changes

@graphql-tools/graphql-tag-pluck@8.3.36

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0

graphql-tools@9.0.34

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/schema@10.1.0

@graphql-tools/import@7.1.19

Patch Changes

  • #8259
    85f1de0
    Thanks @lemonmade! - perf(import): remove redundant work in
    addDefinition's dependency traversal

    addDefinition recurses across the whole dependency graph while assembling each definition's
    imported dependencies. Two things were repeated on every call:

    • visitedFiles.get(filePath) — invariant for the duration of the processImport call, so it's
      now looked up once and hoisted out of the recursion.
    • the per-field dependency-name derivation (visitFieldDefinitionNode /
      visitInputValueDefinitionNode into a fresh Map) — a pure function of the field node and the
      file's static dependency map, so it's now memoized by field identity instead of recomputed every
      time the owning definition is added to a set.

    Pure performance change; output is unchanged (the existing import tests pass and a real-world
    ~12k-line schema produces byte-identical results). Building on the print memoization, this took
    the same codegen pass from ~17s to ~13s. The remaining cost is the O(n²) shape of the closure
    traversal itself (each definition's transitive set is still rebuilt independently); reducing that
    is left for a follow-up as it's a more invasive change.

  • #8258
    6bacf57
    Thanks @lemonmade! - perf(import): memoize print per node when
    assembling imported definitions

    processImport de-duplicates the collected definitions by printing each one to SDL and comparing
    the strings. A single definition node appears in many of the dependency sets (any
    widely-referenced type is pulled in by every definition that depends on it), so print was called
    roughly O(n²) times for n unique nodes. For large, densely-connected schemas this print/visit work
    dominates import time.

    Memoizing print by node identity makes each unique node print at most once. print is a pure
    function of its node, so the output is identical; this is a pure performance change. On a
    ~12k-line schema imported across three projects, this reduced a downstream codegen pass from ~133s
    to ~17s.

  • Updated dependencies
    [2273c21]:

    • @graphql-tools/utils@12.0.0

@graphql-tools/links@10.0.13

Patch Changes

@graphql-tools/load@8.1.16

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/schema@10.1.0
    • @graphql-tools/utils@12.0.0

@graphql-tools/apollo-engine-loader@8.0.35

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0

@graphql-tools/code-file-loader@8.1.37

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0
    • @graphql-tools/graphql-tag-pluck@8.3.36

@graphql-tools/git-loader@8.0.41

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0
    • @graphql-tools/graphql-tag-pluck@8.3.36

@graphql-tools/github-loader@9.1.7

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0
    • @graphql-tools/graphql-tag-pluck@8.3.36

@graphql-tools/graphql-file-loader@8.1.19

Patch Changes

  • Updated dependencies
    [2273c21,
    85f1de0,
    6bacf57]:
    • @graphql-tools/utils@12.0.0
    • @graphql-tools/import@7.1.19

@graphql-tools/json-file-loader@8.0.33

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0

@graphql-tools/module-loader@8.0.33

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0

@graphql-tools/url-loader@9.1.7

Patch Changes

@graphql-tools/merge@9.2.3

Patch Changes

  • #8349
    7fe0319
    Thanks @aarne! - Pass the collected directive definitions to
    mergeSchemaDefs so repeatable directives on schema definitions and extend schema extensions
    (e.g. a repeatable @link) are kept as separate instances instead of being collapsed and having
    their arguments merged.

  • Updated dependencies
    [2273c21]:

    • @graphql-tools/utils@12.0.0

@graphql-tools/mock@9.1.13

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/schema@10.1.0
    • @graphql-tools/utils@12.0.0

@graphql-tools/node-require@7.0.45

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0
    • @graphql-tools/load@8.1.16
    • @graphql-tools/graphql-file-loader@8.1.19

@graphql-tools/relay-operation-optimizer@7.1.9

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0

@graphql-tools/resolvers-composition@7.0.36

Patch Changes

  • Updated dependencies
    [2273c21]:
    • @graphql-tools/utils@12.0.0

@github-actions
github-actions Bot force-pushed the changeset-release/master branch 9 times, most recently from 1ad430d to 86c53c7 Compare August 4, 2026 01:14
@github-actions
github-actions Bot force-pushed the changeset-release/master branch 7 times, most recently from 85f8b24 to 591bd3f Compare August 7, 2026 13:31
@github-actions
github-actions Bot force-pushed the changeset-release/master branch from 591bd3f to fa19031 Compare August 7, 2026 13:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants