Skip to content

v14.1.0

Latest

Choose a tag to compare

@oryan-block oryan-block released this 03 Oct 21:52

Breaking and behavior changes

  • Directives on schema and extend schema are now applied (#824). They used to be silently ignored. An applied schema directive with no matching directive @x declaration, or one using arguments the declaration doesn't define, now fails schema creation with a SchemaError. Apollo Federation's extend schema @link(...) is the most common case. Either declare the directive with every argument you use, or set SchemaParserOptions.newOptions().allowUndeclaredDirectives(true).
  • Resolvers for supertypes of data classes are now used (#820). A GraphQLResolver<Base> now resolves fields for subclasses of Base, and it takes precedence over a getter with the same name on the subclass. Apps that already had such resolvers (previously logged as unused) may see different field values, or a Two different classes used for type error at startup.
  • graphql-java 26.1 is now the default dependency (#818). This version still works with graphql-java 25 if you pin it. federation-jvm 6.x does not support graphql-java 26, so either upgrade to federation-jvm 7 or pin graphql-java 25.
  • SchemaParserOptions has a new property, so its Kotlin-generated copy() has a new signature. Code compiled against 14.0.x that calls copy() needs to be recompiled. Using the builder is unaffected.

Known issues

  • With includeUnusedTypes(true), an unused interface that has no implementations fails schema creation (Expected type 'X' to be a GraphQLOutputType / GraphQLInputType) if its fields reference an enum, custom scalar or input type that isn't used anywhere else in the schema.

Highlights

  • Support graphql-java 26 (#818, fixes #815)
  • Support directives on the schema, with a new allowUndeclaredDirectives option (#824, fixes #717, #729)
  • Support resolvers for supertypes of data classes (#820, fixes #497)
  • Support generic input types (#819, fixes #468)
  • includeUnusedTypes now also includes unused interfaces and unions, plus enums that are in the dictionary (#737, fixes #736)
  • Fix subscription resolver return type validation (#826, fixes #766)
  • @connection without a for argument now fails with a clear SchemaError instead of a NullPointerException (#818)

What's Changed

New Contributors

Full Changelog: v14.0.3...v14.1.0