You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The library itself stays true to its roots, but we've to adapt to the evolving ecosystem (remove unsupported PHP and Laravel version) and stay compatible with other dependencies (e.g. graphql-php).
‼️ This release contains breaking changes, be sure to read through all of them ‼️
High level:
Support for PHP < 8.0 and Laravel < 9.0 was removed
Subtle breaking changes due to new major version 15.x of graphql-php
Removed support for GraphQL eager type load (= only lazy loading is done)
Removed the integration GraphiQL support in favour of a separate package
non-standard error related data keys are not included directly in errors.*.<non-standard error key> any more, but have been moved to errors.*.extensions.<non-standard error key>.
Also new keys may appear here from upstream.
The errors.*.extensions.category has been removed upstream, but we try to
keep it alive with the interface \Rebing\GraphQL\Error\ProvidesErrorCategory as it can be a useful
discriminator on the client side in certain cases. But only the cases from this library are preserved, e.g. categories like request, graphql or internal are gone.
The \Rebing\GraphQL\Support\OperationParams has added required types due to
its base class changes:
Old: public function getOriginalInput($key)
new: public function getOriginalInput(string $key)
Old: public function isReadOnly()
new: public function isReadOnly(): bool
Some BC may happen also if you extended code originating in graphql-php,
some examples:
if you implement custom types, you now have to use property types for e.g. $name or $description
If you used any \GraphQL\Validator\DocumentValidator in your code
directly, you now need use FQCN to reference them and not the shortened
string names.
->getWrappedType(true) was replaced with ->getInnermostType()
the class \GraphQL\Type\Definition\FieldArgument has been renamed to \GraphQL\Type\Definition\Argument
Removed
Remove support for eager loading (=non-lazy loading) of types
Lazy loading has been introduced in 2.0.0 (2019-08) and has been made the
default since 8.0.0 (2021-11).
The practical impact is that types are always going to be resolved using a
type loader and therefore cannot use aliases anymore. Types and their type
name have to match.
The type resolver is now able to resolve the top level types 'Query',
'Mutation' and 'Subscription'
If you have an existing query/mutation/type named like this, you need to
rename it.
Return types were added to all methods of the commands #1005 / sforward
The Pagination and SimplePagination helper types now enforce nonNull on their data types
The test suite now also runs with --prefer-lowest#1055 / mfn
This uncovered a few issues with laragraph/utils and webonyx/graphql-php
and thus their minimum version had to be slightly bumped to 2.0.1 and 15.0.3 respectively.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
It's been 1 1/2 years since our last major release 8.0.0 😱
The library itself stays true to its roots, but we've to adapt to the evolving ecosystem (remove unsupported PHP and Laravel version) and stay compatible with other dependencies (e.g. graphql-php).
High level:
Breaking changes
Added
Upgrade to graphql-php 15 #953 / mfn
This includes possible breaking changes also outside of this package, see also https://github.com/webonyx/graphql-php/releases/tag/v15.0.0
Known breaking changes:
errors.*.<non-standard error key>
any more, but have been moved toerrors.*.extensions.<non-standard error key>
.Also new keys may appear here from upstream.
errors.*.extensions.category
has been removed upstream, but we try tokeep it alive with the interface
\Rebing\GraphQL\Error\ProvidesErrorCategory
as it can be a usefuldiscriminator on the client side in certain cases. But only the cases from
this library are preserved, e.g. categories like
request
,graphql
orinternal
are gone.\Rebing\GraphQL\Support\OperationParams
has added required types due toits base class changes:
public function getOriginalInput($key)
new:
public function getOriginalInput(string $key)
public function isReadOnly()
new:
public function isReadOnly(): bool
Some BC may happen also if you extended code originating in graphql-php,
some examples:
$name
or$description
\GraphQL\Validator\DocumentValidator
in your codedirectly, you now need use FQCN to reference them and not the shortened
string names.
->getWrappedType(true)
was replaced with->getInnermostType()
\GraphQL\Type\Definition\FieldArgument
has been renamed to\GraphQL\Type\Definition\Argument
Removed
Lazy loading has been introduced in 2.0.0 (2019-08) and has been made the
default since 8.0.0 (2021-11).
The practical impact is that types are always going to be resolved using a
type loader and therefore cannot use aliases anymore. Types and their type
name have to match.
Changed
'Mutation' and 'Subscription'
If you have an existing query/mutation/type named like this, you need to
rename it.
Pagination
andSimplePagination
helper types now enforcenonNull
on their data types--prefer-lowest
#1055 / mfnThis uncovered a few issues with
laragraph/utils
andwebonyx/graphql-php
and thus their minimum version had to be slightly bumped to
2.0.1
and15.0.3
respectively.Many thanks to all the contributors!
Full Changelog: 8.6.0...9.0.0
This discussion was created from the release 9.0.0 is here 🎉.
Beta Was this translation helpful? Give feedback.
All reactions