forked from goodboy/tractor
Update news file
parent
2b2c73905c
commit
95f2f10b64
50
NEWS.rst
50
NEWS.rst
|
@ -4,6 +4,56 @@ Changelog
|
|||
|
||||
.. towncrier release notes start
|
||||
|
||||
tractor 0.1.0a2 (2021-09-07)
|
||||
============================
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
- Add `tokio-style broadcast channels
|
||||
<https://docs.rs/tokio/1.11.0/tokio/sync/broadcast/index.html>`_ as
|
||||
a solution for `#204 <https://github.com/goodboy/tractor/pull/204>`_ and
|
||||
discussed thoroughly in `trio/#987
|
||||
<https://github.com/python-trio/trio/issues/987>`_.
|
||||
|
||||
This gives us local task broadcast functionality using a new
|
||||
``BroadcastReceiver`` type which can wrap ``trio.ReceiveChannel`` and
|
||||
provide fan-out copies of a stream of data to every subscribed consumer.
|
||||
We use this new machinery to provide a ``ReceiveMsgStream.subscribe()``
|
||||
async context manager which can be used by actor-local concumers tasks
|
||||
to easily pull from a shared and dynamic IPC stream. (`#229
|
||||
<https://github.com/goodboy/tractor/pull/229>`_)
|
||||
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Handle broken channel/stream faults where the root's tty lock is left
|
||||
acquired by some child actor who went MIA and the root ends up hanging
|
||||
indefinitely. (`#234 <https://github.com/goodboy/tractor/pull/234>`_)
|
||||
|
||||
There's two parts here: we no longer shield wait on the lock and,
|
||||
now always do our best to release the lock on the expected worst
|
||||
case connection faults.
|
||||
|
||||
|
||||
Deprecations and Removals
|
||||
-------------------------
|
||||
|
||||
- Drop stream "shielding" support which was originally added to sidestep
|
||||
a cancelled call to ``.receive()``
|
||||
|
||||
In the original api design a stream instance was returned directly from
|
||||
a call to ``Portal.run()`` and thus there was no "exit phase" to handle
|
||||
cancellations and errors which would trigger implicit closure. Now that
|
||||
we have said enter/exit semantics with ``Portal.open_stream_from()`` and
|
||||
``Context.open_stream()`` we can drop this implicit (and arguably
|
||||
confusing) behavior. (`#230 <https://github.com/goodboy/tractor/pull/230>`_)
|
||||
|
||||
- Drop Python 3.7 support in preparation for supporting 3.9+ syntax.
|
||||
(`#232 <https://github.com/goodboy/tractor/pull/232>`_)
|
||||
|
||||
|
||||
tractor 0.1.0a1 (2021-08-01)
|
||||
============================
|
||||
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
Add `tokio-style broadcast channels
|
||||
<https://docs.rs/tokio/1.11.0/tokio/sync/broadcast/index.html>`_ as
|
||||
a solution for `#204 <https://github.com/goodboy/tractor/pull/204>`_ and
|
||||
discussed thoroughly in `trio/#987
|
||||
<https://github.com/python-trio/trio/issues/987>`_.
|
||||
|
||||
This gives us local task broadcast functionality using a new
|
||||
``BroadcastReceiver`` type which can wrap ``trio.ReceiveChannel`` and
|
||||
provide fan-out copies of a stream of data to every subscribed consumer.
|
||||
We use this new machinery to provide a ``ReceiveMsgStream.subscribe()``
|
||||
async context manager which can be used by actor-local concumers tasks
|
||||
to easily pull from a shared and dynamic IPC stream.
|
|
@ -1,9 +0,0 @@
|
|||
Drop stream "shielding" support which was originally added to sidestep
|
||||
a cancelled call to ``.receive()``
|
||||
|
||||
In the original api design a stream instance was returned directly from
|
||||
a call to ``Portal.run()`` and thus there was no "exit phase" to handle
|
||||
cancellations and errors which would trigger implicit closure. Now that
|
||||
we have said enter/exit semantics with ``Portal.open_stream_from()`` and
|
||||
``Context.open_stream()`` we can drop this implicit (and arguably
|
||||
confusing) behavior.
|
|
@ -1 +0,0 @@
|
|||
Drop Python 3.7 support in preparation for supporting 3.9+ syntax.
|
|
@ -1,6 +0,0 @@
|
|||
Handle broken channel/stream faults where the root's tty lock is left acquired by some
|
||||
child actor who went MIA and the root ends up hanging indefinitely.
|
||||
|
||||
There's two parts here:
|
||||
- Don't shield wait on the lock
|
||||
- Always do our best to release the lock on the expected worst case connection faults
|
Loading…
Reference in New Issue