Releases · psevensas/DjangoChannelsGraphqlWs

v1.0.0rc7

v1.0.0rc6

  • GraphQL parsing and message serialization now perform concurrently by sync_to_async(...,thread_sensitive=False).

v1.0.0rc5

WARNING: Release contains backward incompatible changes!

  • To suppress/drop subscription notification just return None from the subscription resolver. Previously it was necessary to return special SKIP object which is no longer the case..
  • Python 3.8 compatibility brought back. Tests pass OK.

v1.0.0rc4

  • GraphqlWsConsumer.warn_resolver_timeout removed to avoid mess with user specified middlewares. This functionality can easily be implemented on the library user level by creating a designated middleware.
  • GraphqlWsConsumer.middleware accepts an instance of graphql.MiddlewareManager or the list of functions. Same as the argument middleware of graphql.execute method.
  • Fixed broken example.

v1.0.0rc3

  • Invoke synchronous resolvers in the main thread with eventloop. So there is no difference in this aspect with async resolvers. This corresponds to the behavior of the graphql-core library.
  • Added example of middleware which offloads synchronous resolvers to the threadpool.
  • Fixed bug with GraphQL WrappingTypes like GraphQLNonNull causing exceptions when used as subscription field.
  • Fixed broken example.

v1.0.0rc2

Broken support of previous Python version brought back.

v1.0.0rc1

  • DjangoChannelsGraphqlWs has migrated to the recent versions of Django, Channels, and Graphene. All other Python dependencies updated.
  • Server outputs a warning to the log when operation/resolver takes longer than specified timeout, which is one second by default. The settings GraphqlWsConsumer.warn_operation_timeout and GraphqlWsConsumer.warn_resolver_timeout allow to tune the timeout or even disable the warning at all.
  • If exception raises from the resolver a response now contains a field "extensions.code" with a class name of the exception.
  • Added support for async resolvers and middlewares.
  • WARNING: This release is not backward compatible with previous ones! The main cause is a major update of Django, Channels, and Graphene, but there are some introduced by the library itself. In particular, context lifetime and content have changed. See README.md for details.

v0.9.1

  • Minor fix in logging.

v0.9.0

  • Added ability to configure server notification queue limit per subscribtion.

v0.8.0

  • Switched to Channels 3.
  • Python dependencies updated.