Skip to content

v.2.0.0-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@mfn mfn released this 28 Jun 18:28
· 1515 commits to master since this release
86e42b9

Welcome to the first Release Candidate for the v2 release line!

This is the first RC to signal the community about the ongoing work and to gather feedback:

  • The majority of the work happened under the hood (more strict types, increased integration test coverage)
  • A few bug fix goodies are also included
  • Better compatibility when migrating from https://github.com/folkloreinc/laravel-graphql
    • Please also see this WiP guide: #364

Please report and issues you find or hop on slack and give us feedback!

Changelog

This covers the changes since the last stable release of the v1 release line, v1.24.0

Breaking changes

  • The order and arguments/types for resolvers has changed:
    • before: resolve($root, $array, SelectFields $selectFields, ResolveInfo $info)
    • after: resolve($root, $array, $context, ResolveInfo $info, Closure $getSelectFields)
  • Added PHP types / phpdoc to all methods / properties #331
    • Changes in method signatures will require small adaptions.
  • Validation errors are moved from error.validation to error.extensions.validation as per GraphQL spec recommendation #294
  • SelectFields on interface types now only selects specific fields instead of all #294
    • Although this could be consider a bug fix, it changes what columns are selected and if your code as a side-effect dependent on all columns being selected, it will break

Added

  • InputType support class which eventually replace $inputObject=true #363
  • Support DB::raw() in alias fields
  • GraphiQL: use regenerated CSRF from server if present #332
  • Internal
    • Added declare(strict_types=1) directive to all files
    • Test suite has been refactored and now features Database (SQLite) tests too

Changed

  • Made the following classes abstract: Support\Field, Support\InterfceType, Support\Mutation, Support\Query, Support\Type, Support\UnionType #357
  • Updated GraphiQL to 0.13.0 #335
    • If you're using CSP, be sure to allow cdn.jsdelivr.net and cdnjs.cloudflare.com
  • ValidatorError: remove setter and make it a constructor arg, add getter and rely on contracts
  • Replace global helper is_lumen with static class call \Rebing\GraphQL\Helpers::isLumen

Fixed

  • Path multi-level support for Schemas works again #358
  • SelectFields correctly passes field arguments to the custom query #327
    • This also applies to privacy checks on fields, the callback now receives the field arguments too
    • Previously the initial query arguments would be used everywhere

Removed

  • Unused static field \Rebing\GraphQL\Support\Type::$instances
  • Unused field \Rebing\GraphQL\Support\Type::$unionType