tractor/NEWS.rst

104 lines
4.0 KiB
ReStructuredText
Raw Permalink Normal View History

2021-07-31 20:29:44 +00:00
=========
Changelog
=========
.. towncrier release notes start
2021-07-31 20:29:44 +00:00
tractor 0.1.0a1 (2021-08-01)
============================
Features
--------
- Updated our uni-directional streaming API (`#206
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor/pull/206>`_) to require a context
manager style ``async with Portal.open_stream_from(target) as stream:``
which explicitly determines when to stop a stream in the calling (aka
portal opening) actor much like ``async_generator.aclosing()``
enforcement.
2021-07-31 20:29:44 +00:00
- Improved the ``multiprocessing`` backend sub-actor reaping (`#208
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor/pull/208>`_) during actor nursery
2021-07-31 20:29:44 +00:00
exit, particularly during cancellation scenarios that previously might
result in hard to debug hangs.
- Added initial bi-directional streaming support in `#219
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor/pull/219>`_ with follow up debugger
improvements via `#220 <https://github.com/goodboy/tractor/pull/220>`_
2021-07-31 20:29:44 +00:00
using the new ``tractor.Context`` cross-actor task syncing system.
The debugger upgrades add an edge triggered last-in-tty-lock semaphore
which allows the root process for a tree to avoid clobbering children
who have queued to acquire the ``pdb`` repl by waiting to cancel
sub-actors until the lock is known to be released **and** has no
pending waiters.
Experiments and WIPs
--------------------
- Initial optional ``msgspec`` serialization support in `#214
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor/pull/214>`_ which should hopefully
2021-07-31 20:29:44 +00:00
land by next release.
- Improved "infect ``asyncio``" cross-loop task cancellation and error
propagation by vastly simplifying the cross-loop-task streaming approach.
We may end up just going with a use of ``anyio`` in the medium term to
avoid re-doing work done by their cross-event-loop portals. See the
2021-07-31 20:29:44 +00:00
``infect_asyncio`` for details.
Improved Documentation
----------------------
2021-08-01 15:29:41 +00:00
- `Updated our readme <https://github.com/goodboy/tractor/pull/211>`_ to
2021-07-31 20:29:44 +00:00
include more (and better) `examples
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor#run-a-func-in-a-process>`_ (with
2021-07-31 20:29:44 +00:00
matching multi-terminal process monitoring shell commands) as well as
added many more examples to the `repo set
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor/tree/master/examples>`_.
2021-07-31 20:29:44 +00:00
- Added a readme `"actors under the hood" section
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor#under-the-hood>`_ in an effort to
2021-07-31 20:29:44 +00:00
guard against suggestions for changing the API away from ``trio``'s
*tasks-as-functions* style.
- Moved to using the `sphinx book theme
2021-08-01 15:29:41 +00:00
<https://sphinx-book-theme.readthedocs.io/en/latest/index.html>`_
2021-07-31 20:29:44 +00:00
though it needs some heavy tweaking and doesn't seem to show our logo
on rtd :(
Trivial/Internal Changes
------------------------
- Added a new ``TransportClosed`` internal exception/signal (`#215
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor/pull/215>`_ for catching TCP
2021-07-31 20:29:44 +00:00
channel gentle closes instead of silently falling through the message
handler loop via an async generator ``return``.
2021-07-31 20:29:44 +00:00
Deprecations and Removals
-------------------------
- Dropped support for invoking sync functions (`#205
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor/pull/205>`_) in other
2021-07-31 20:29:44 +00:00
actors/processes since you can always wrap a sync function from an
async one. Users can instead consider using ``trio-parallel`` which
is a project specifically geared for purely synchronous calls in
sub-processes.
- Deprecated our ``tractor.run()`` entrypoint `#197
2021-08-01 15:29:41 +00:00
<https://github.com/goodboy/tractor/pull/197>`_; the runtime is now
2021-07-31 20:29:44 +00:00
either started implicitly in first actor nursery use or via an
explicit call to ``tractor.open_root_actor()``. Full removal of
``tractor.run()`` will come by beta release.
tractor 0.1.0a0 (2021-02-28)
============================
..
TODO: fill out more of the details of the initial feature set in some TLDR form
Summary
-------
- ``trio`` based process spawner (using ``subprocess``)
- initial multi-process debugging with ``pdb++``
- windows support using both ``trio`` and ``multiprocessing`` spawners
- "portal" api for cross-process, structured concurrent, (streaming) IPC