* Added the ``maybe_async()`` and ``maybe_async_cm()`` functions to facilitate forward compatibility with AnyIO 3
* Fixed socket stream bug on asyncio where receiving a half-close from the peer would shut down the entire connection
* Fixed native task names not being set on asyncio on Python 3.8+
* Fixed ``TLSStream.send_eof()`` raising ``ValueError`` instead of the expected ``NotImplementedError``
* Fixed ``open_signal_receiver()`` on asyncio and curio hanging if the cancel scope was cancelled before the function could run
* Fixed Trio test runner causing unwarranted test errors on ``BaseException``s
* Fixed formatted output of ``ExceptionGroup`` containing too many newlines
* Added the ``spawn_task()`` and ``wrap_async_context_manager()`` methods to ``BlockingPortal``
* Added the ``handshake_timeout`` and ``error_handler`` parameters to ``TLSListener``
* Fixed ``Event`` objects on the trio backend not inheriting from ``anyio.abc.Event``
* Fixed ``run_sync_in_worker_thread()`` raising ``UnboundLocalError`` on asyncio when cancelled
* Fixed ``send()`` on socket streams not raising any exception on asyncio, and an unwrapped
* ``BrokenPipeError`` on trio and curio when the peer has disconnected
* Fixed ``MemoryObjectSendStream.send()`` raising ``BrokenResourceError`` when the last receiver is closed right after receiving the item
* Fixed ``ValueError: Invalid file descriptor: -1`` when closing a ``SocketListener`` on asyncio
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-anyio?expand=0&rev=3