Releases: datadvance/DjangoChannelsGraphqlWs
Releases · datadvance/DjangoChannelsGraphqlWs
v1.0.0rc7
Supported the most recent WebSocket sub-protocol graphql-transport-ws
used by Apollo. See the specification https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md.
v1.0.0rc6
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 specialSKIP
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 ofgraphql.MiddlewareManager
or the list of functions. Same as the argumentmiddleware
ofgraphql.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
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
andGraphqlWsConsumer.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
v0.9.0
- Added ability to configure server notification queue limit per subscribtion.