Skip to content
Open
No due date
Last updated Aug 6, 2017
100% complete

This version is the first reference implementation fully compatible with GraphQL — April 2016. In addition to any relevant breaking changes from the spec, it also has made some breaking changes to its API.

This also brings graphql-go on par with graphql-js v0.5.0.

Special thanks to all that have contributed to this release.

Breaking:

  • Rounding off support for context. It is now available for resolving types in IsTypeOfFn and ResolveTypeFn, similar to FieldResolveFn. (graphql-go/graphql@1e33c35)
  • Directives in schema language: Breaking change to NewDirective() API. (graphql-go/graphql@2322d25)
  • Directive location introspection: This deprecates onField, onFragment, and onOperation in favor of locations which is a list of __DirectiveLocation. (graphql-go/graphql@58f2928)
  • Types can now be explicitly provided to NewSchema(SchemaConfig{Types: [...] }). Types which implement an interface but are otherwise not referenced as a field return type are no longer automatically added to the Schema. Use SchemaConfig{Type: [..]} to ensure they are included to the Schema. (graphql-go/graphql@79f48da)

New:

Fixes:

  • Spec compliance: @Skip and @include are now commutative. (graphql-go/graphql@95bc032)
  • Spec compliance: Allow graphql.Float to be represented by float64. (#133, #130)
  • Fixed invalid lexer tests for parsing TokenString. (#138)

Enhancements:

  • Improve lexer performance by using byte array as source. (#137)
  • Improved coverage for lexer package. (#138)
  • Additional tests for covering unicode text support. (#138, #135)

API Changes

Previous New Risk
NewDirective(*Directive) NewDirective(DirectiveConfig) Low-Medium
Abstract.ObjectType(interface{}, ResolveInfo) *Object removed Low-Medium
Union.ObjectType(interface{}, ResolveInfo) *Object removed Low-Medium
Interface.ObjectType(interface{}, ResolveInfo) *Object removed Low-Medium
IsTypeOfFn(interface{}, ResolveInfo) IsTypeOfFn(IsTypeOfParams) High
ResolveTypeFn(interface{}, ResolveInfo) ResolveTypeFn(ResolveTypeParams) High
ResolveParams.Schema removed, already available in ResolveInfo Low-Medium

List view