v14.0.0
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\Deferrednow extendsGraphQL\Executor\Promise\Adapter\SyncPromise - BREAKING: renamed several types of dangerous/breaking changes (returned by
BreakingChangesFinder) - BREAKING: Renamed
GraphQL\Error\DebugtoGraphQL\Error\DebugFlag. - BREAKING: Debug flags in
GraphQL\Executor\ExecutionResult,GraphQL\Error\FormattedErrorandGraphQL\Server\ServerConfigdo not acceptbooleanvalue anymore butintonly. - BREAKING:
$positionsinGraphQL\Error\Errorconstructor 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
deprecationReasonwill now print the@deprecateddirective (only anulldeprecationReasonwon't print the@deprecateddirective). - 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!