Skip to content

Releases: graphql-python/graphql-core

v3.3.0b0: Bump version

11 Jun 21:44
f2db0e3

Choose a tag to compare

Pre-release

Beta release GraphQL-core v3.3.0b0, based on GraphQL.js v17.0.0b0.

This patch-release supports Python 3.10 to 3.14.

Breaking changes after the last alpha version 3.3.0a14:

  • Aborted operations now raise the new AbortedGraphQLExecutionError (with the partial result available as aborted_result) instead of the raw abort reason. Aborting during the incremental (defer/stream) phase now also rejects the pending __anext__ with the abort reason instead of yielding a final error payload.
  • create_source_event_stream() no longer accepts request args; it now takes the built Executor (call Executor.build() first), or use subscribe() instead.
  • subscribe() now raises GraphQLError("Expected subscription operation.") for non-subscription operations.
  • execute_query_or_mutation_or_subscription_event() has been renamed to execute_root_selection_set() (and gained a serially argument).
  • An explicit Undefined variable value is now treated as omitted, so the variable's default applies (previously coerced to a provided null for nullable variables).
  • TypeInfo.get_input_type() and ValidationContext.get_input_type() now return None inside list literals in custom scalar positions; use the new get_parent_input_type() for the enclosing scalar. Variables are now allowed in those positions.

Other notable changes:

  • OneOf input coercion is stricter (spec-compliance fixes): unified error messages, and coercion now fails when two fields are provided pre-coercion (e.g. via a missing variable), when unknown fields would mask the field count, or when the single field is only filled in from an invalid default. Unknown fields no longer add a spurious oneOf count error in validation.
  • value_from_ast() now rejects unknown input object fields.
  • Input coercion fixes: Undefined-valued unknown input object fields are ignored, and an explicit null variable now overrides an input object field's default.
  • Better error messages for runtime invalid default values; fragment variables are named as such in execution errors.
  • New async_work_finished execution hook on the Executor.
  • Incremental delivery robustness: label: null on @defer/@stream means "no label"; fixes for promise rejections, cancellation, and cleanup ordering in async execution.

Thanks to @jkimbo for sponsoring this project.

v3.3.0a14

07 Jun 21:58
ae0c7a7

Choose a tag to compare

v3.3.0a14 Pre-release
Pre-release

Alpha release GraphQL-core v3.3.0a14, based on GraphQL.js v17.0.0a14.

This patch-release supports Python 3.10 to 3.14.

This alpha release comes with the following breaking changes:

  • ExecutionContext renamed to Executor. The execution context class is now Executor. The old name is not kept as an alias, i.e. from graphql import ExecutionContext no longer works; use from graphql import Executor.
  • Custom-executor parameter renamed from execution_context_class to executor_class. Applies to graphql, graphql_sync, execute, execute_sync, experimental_execute_incrementally, subscribe, and create_source_event_stream. The method build_per_event_execution_context is likewise renamed to build_per_event_executor.
  • An aborted operation raises the abort reason instead of resolving to a partial error-result.
  • A Python int that is too large to represent as a float, or that would lose precision when converted (beyond 2^53), now raises a GraphQLError when coerced to Float (input or output) instead of silently producing an inexact value. IntIDString, and Boolean continue to accept Python int as before (and now handle arbitrarily large ints without error).

Thanks to @jkimbo for sponsoring this project.

v3.3.0a13

07 Jun 12:49
fbda46b

Choose a tag to compare

v3.3.0a13 Pre-release
Pre-release

Alpha release GraphQL-core v3.3.0a13, based on GraphQL.js v17.0.0a9.

This patch-release supports Python 3.10 to 3.14.

Thanks to @jkimbo for sponsoring this project, and to @arichberg, @ckristhoff, @kathychurch and @leszekhanusz for valuable feedback.

v3.2.11

05 Jun 13:51
d5a5464

Choose a tag to compare

Patch-release GraphQL-core v3.2.11, based on GraphQL.js v16.14.1.

This patch-release supports Python 3.7 to 3.14.

Notable changes:

  • Allow configuration of the ofType introspection depth
  • Add support for directives on directive definitions
  • Restore variable own-property checks in value_from_ast
  • Remove unused variable-definition tracking in ValuesOfCorrectTypeRule

Thanks to all who are sponsoring me (@Cito) for maintaining this project.

v3.2.10

05 Jun 12:03
12bcb49

Choose a tag to compare

Patch-release GraphQL-core v3.2.10, based on GraphQL.js v16.13.0.

This patch-release supports Python 3.7 to 3.14.

New features:

  • Add support for schema coordinates (parsing and resolving)
  • Support descriptions on executable definitions (e.g. variable definitions)
  • Add a max_coercion_errors option

Bug fixes:

  • Fix incorrect validation errors when variable descriptions are used
  • Don't add sibling errors after null propagation has occurred
  • Remove erroneous oneOf validation from the "values of correct type" rule
  • Validate that nullable variables aren't passed to oneOf input object fields (per spec)
  • Catch unhandled exceptions during abstract type resolution

Thanks to all who are sponsoring me (@Cito) for maintaining this project.

v3.2.9

04 Jun 22:02
2a1275e

Choose a tag to compare

Patch-release GraphQL-core v3.2.9, based on GraphQL.js v16.10.0.

This patch-release supports Python 3.7 to 3.14.

Notable changes:

  • Fix OverlappingFieldsCanBeMergedRule to catch field-merge conflicts hidden behind nested fragments
  • Fix handling of empty selection sets
  • Correctly type extensions in GraphQLFormattedError
  • Add kind to the introspection query/mutation/subscription root types
  • Expose token_count on DocumentNode
  • Preserve schema and input-field properties (e.g. descriptions) when sorting

Thanks to @kathychurch and @arichberg for reporting the sorting issue.

Also thanks to all who are sponsoring me (@Cito) for maintaining this project.

v3.3.0a12

05 Mar 16:42
845ddf3

Choose a tag to compare

v3.3.0a12 Pre-release
Pre-release

Alpha release GraphQL-core v3.3.0a12, based on GraphQL.js v17.0.0a7.

This patch-release supports Python 3.10 to 3.14.

Notable improvements since the last alpha release, in addition to the upstream improvements in v17.0.0.a7:

  • Add serialization benchmark (#250)
  • Use tuples instead of lists for all AST collection fields (#251)
  • De-support Python 3.7 to 3.9 (#252)
  • Make visitor immutable friendly (#253)
  • Fix parser type safety for stricter AST types (#255)
  • Convert AST nodes to frozen dataclasses (#256)
  • Support custom async iterables (#258)
  • Improve type hints using Self (#259)

Thanks to @jkimbo for sponsoring this project, and to @bellini666, @bigfootjon and @corydolphin for contributing to this release.

v3.2.8

05 Mar 20:00
a78b548

Choose a tag to compare

Patch-release GraphQL-core v3.2.8, based on GraphQL.js v16.9.0.

This patch-release supports Python 3.7 to 3.14.

One change has been backported from the v3.3 branch:

  • Require non-empty directive locations

Also, for backward compatibility, introspection.TypeResolvers is available again, as alias for TypeFields.

Thanks to all who are sponsoring me (@Cito) for maintaining this project.

v3.3.0a11

01 Nov 17:24
6a9ef23

Choose a tag to compare

v3.3.0a11 Pre-release
Pre-release

Alpha release GraphQL-core v3.3.0a11, based on GraphQL.js v17.0.0a5.

Notable improvements since the last alpha release:

  • Python 3.14 is now officially supported
  • Enum values, input fields and schemas now keep extensions on sorting (#245)
  • Various refactorings and changes concerning @defer and @stream
  • Early execution on incremental delivery is now disabled by default
  • New recommended validation rule for max introspection depth
  • GraphQLEnumType values can now be specified via a callable

Thanks to @jkimbo for sponsoring this project, and to @erikwrede for contributing to this release.

v3.2.7

01 Nov 22:48
42328a6

Choose a tag to compare

Patch-release GraphQL-core v3.2.7, based on GraphQL.js v16.9.0.

This patch-release supports Python 3.7 to 3.14.

The following changes have been backported from the v3.3 branch:

  • Keep extensions when sorting schemas
  • Introduce "recommended" validation rules
  • Implement OneOf Input Objects via @OneOf directive
  • Values can now be passed to GraphQLEnumType as a thunk
  • Solved issues with pickled schemas

Thanks to all who are sponsoring me (@Cito) for maintaining this project.