From 8a4a11b88522020fc3dc50ccd0af253eb7ffe007 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Sat, 31 Jul 2021 16:29:44 -0400 Subject: [PATCH] Add .alpha1 news flash --- NEWS.rst | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 NEWS.rst diff --git a/NEWS.rst b/NEWS.rst new file mode 100644 index 0000000..0c064ad --- /dev/null +++ b/NEWS.rst @@ -0,0 +1,100 @@ +========= +Changelog +========= + +tractor 0.1.0a1 (2021-08-01) +============================ + +Features +-------- +- Updated our uni-directional streaming API (`#206 + `) to require a context + manager style ``async Portal.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. + +- Improved the ``multiprocessing`` backend sub-actor reaping (`#208 + `) during actor nursery + exit, particularly during cancellation scenarios that previously might + result in hard to debug hangs. + +- Added initial bi-directional streaming support in `#219 + ` with follow up debugger + improvements via `#220 ` + 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 + ` which should hopefully + land by next release. + +- Improved "infect ``asyncio``" cross-loop task cancellation and error + propagation by vastly simplifying the approach. We may end up just + going with a use of ``anyio`` in the medium term to avoid re-doing + work done by that group cross-event-loop portals. See the + ``infect_asyncio`` for details. + + +Improved Documentation +---------------------- +- `Updated our readme ` to + include more (and better) `examples + ` (with + matching multi-terminal process monitoring shell commands) as well as + added many more examples to the `repo set + `. + +- Added a readme `"actors under the hood" section + ` in an effort to + guard against suggestions for changing the API away from ``trio``'s + *tasks-as-functions* style. + +- Moved to using the `sphinx book theme + ` + 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 + ` for catching TCP + channel gentle closes instead of silently falling through the message + handler loop via an async generator ``return```. + + +Deprecations and Removals +------------------------- +- Dropped support for invoking sync functions (`#205 + `) in other + 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 + `; the runtime is now + 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