Skip to content

v14.0.0

Compare
Choose a tag to compare
@vladar vladar released this 21 Jun 12:57
· 818 commits to master since this release

This release brings several breaking changes. Please refer to UPGRADE document for details.

  • BREAKING/BUGFIX: Strict coercion of scalar types (#278)
  • BREAKING/BUGFIX: Spec-compliance: Fixed ambiguity with null variable values and default values (#274)
  • BREAKING: Removed deprecated directive introspection fields (onOperation, onFragment, onField)
  • BREAKING: GraphQL\Deferred now extends GraphQL\Executor\Promise\Adapter\SyncPromise
  • BREAKING: renamed several types of dangerous/breaking changes (returned by BreakingChangesFinder)
  • BREAKING: Renamed GraphQL\Error\Debug to GraphQL\Error\DebugFlag.
  • BREAKING: Debug flags in GraphQL\Executor\ExecutionResult, GraphQL\Error\FormattedError and GraphQL\Server\ServerConfig do not accept boolean value anymore but int only.
  • BREAKING: $positions in GraphQL\Error\Error constructor are not nullable anymore. Same can be expressed by passing an empty array.

Notable features and improvements:

  • Compliant with the GraphQL specification June 2018 Edition
  • Support repeatable directives (#643)
  • Perf: support lazy type definitions (#557)
  • Simplified Deferred implementation (now allows chaining like promises, #581)
  • Support SDL Validation and other schema validation improvements (e.g. #492)
  • Added promise adapter for Amp (#551)
  • Query plan utility improvements (#513, #632)

Other noteworthy changes:

  • Allow retrieving query complexity once query has been completed (#316)
  • Allow input types to be passed in from variables using \stdClass instead of associative arrays (#535)
  • Support UTF-16 surrogate pairs within string literals (#554, #556)
  • Having an empty string in deprecationReason will now print the @deprecated directive (only a null deprecationReason won't print the @deprecated directive).
  • Deprecated Experimental executor (#397)

Also some bugs fixed, heavily investe in PHPStan for static analysis.

Special thanks to @simPod, @spawnia and @shmax for their major contributions!