2.1.1 Release Notes
===================

Channels 2.1.1 is a bugfix release for an important bug in the new async
authentication code.


Major Changes
-------------

None.


Bugfixes & Small Changes
------------------------

Previously, the object in ``scope["user"]`` was one of Django's
SimpleLazyObjects, which then called our ``get_user`` async function via
``async_to_sync``.

This worked fine when called from SyncConsumers, but because
async environments do not run attribute access in an async fashion, when
the body of an async consumer tried to call it, the ``asgiref`` library
flagged an error where the code was trying to call a synchronous function
during a async context.

To fix this, the User object is now loaded non-lazily on application startup.
This introduces a blocking call during the synchronous application
constructor, so the ASGI spec has been updated to recommend that constructors
for ASGI apps are called in a threadpool and Daphne 2.1.1 implements this
and is recommended for use with this release.


Backwards Incompatible Changes
------------------------------

None.
