forked from goodboy/tractor
commit
2c12d39617
|
@ -23,8 +23,7 @@ jobs:
|
|||
- name: Run MyPy check
|
||||
run: mypy tractor/ --ignore-missing-imports
|
||||
|
||||
testing:
|
||||
|
||||
testing-linux:
|
||||
name: '${{ matrix.os }} Python ${{ matrix.python }} - ${{ matrix.spawn_backend }}'
|
||||
timeout-minutes: 9
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
@ -32,8 +31,8 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest]
|
||||
python: ['3.9']
|
||||
os: [ubuntu-latest]
|
||||
python: ['3.9', '3.10']
|
||||
spawn_backend: ['trio', 'mp']
|
||||
|
||||
steps:
|
||||
|
@ -52,8 +51,8 @@ jobs:
|
|||
- name: Run tests
|
||||
run: pytest tests/ --spawn-backend=${{ matrix.spawn_backend }} -rs
|
||||
|
||||
testing-msgspec:
|
||||
# runs py3.9 jobs on all OS's but with optional `msgspec` dep installed
|
||||
testing-linux-msgspec:
|
||||
# runs jobs on all OS's but with optional `msgspec` dep installed
|
||||
name: '${{ matrix.os }} Python ${{ matrix.python }} - ${{ matrix.spawn_backend }} - msgspec'
|
||||
timeout-minutes: 10
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
@ -61,8 +60,8 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest]
|
||||
python: ['3.9']
|
||||
os: [ubuntu-latest]
|
||||
python: ['3.9', '3.10']
|
||||
spawn_backend: ['trio', 'mp']
|
||||
|
||||
steps:
|
||||
|
@ -80,3 +79,40 @@ jobs:
|
|||
|
||||
- name: Run tests
|
||||
run: pytest tests/ --spawn-backend=${{ matrix.spawn_backend }} -rs
|
||||
|
||||
# We skip 3.10 on windows for now due to
|
||||
# https://github.com/pytest-dev/pytest/issues/8733
|
||||
# some kinda weird `pyreadline` issue..
|
||||
|
||||
# TODO: use job filtering to accomplish instead of repeated
|
||||
# boilerplate as is above XD:
|
||||
# - https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows
|
||||
# - https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
||||
# - https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idif
|
||||
testing-windows:
|
||||
name: '${{ matrix.os }} Python ${{ matrix.python }} - ${{ matrix.spawn_backend }}'
|
||||
timeout-minutes: 9
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest]
|
||||
python: ['3.9']
|
||||
spawn_backend: ['trio', 'mp']
|
||||
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '${{ matrix.python }}'
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install -U . -r requirements-test.txt -r requirements-docs.txt --upgrade-strategy eager
|
||||
|
||||
- name: Run tests
|
||||
run: pytest tests/ --spawn-backend=${{ matrix.spawn_backend }} -rs
|
||||
|
|
51
NEWS.rst
51
NEWS.rst
|
@ -4,6 +4,57 @@ Changelog
|
|||
|
||||
.. towncrier release notes start
|
||||
|
||||
tractor 0.1.0a3 (2021-11-02)
|
||||
============================
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
- Switch to using the ``trio`` process spawner by default on windows. (#166)
|
||||
|
||||
This gets windows users debugger support (manually tested) and in
|
||||
general a more resilient (nested) actor tree implementation.
|
||||
|
||||
- Add optional `msgspec <https://jcristharif.com/msgspec/>`_ support
|
||||
as an alernative, faster MessagePack codec. (#214)
|
||||
|
||||
Provides us with a path toward supporting typed IPC message contracts. Further,
|
||||
``msgspec`` structs may be a valid tool to start for formalizing our
|
||||
"SC dialog un-protocol" messages as described in `#36
|
||||
<https://github.com/goodboy/tractor/issues/36>`_`.
|
||||
|
||||
- Introduce a new ``tractor.trionics`` `sub-package`_ that exposes
|
||||
a selection of our relevant high(er) level trio primitives and
|
||||
goodies. (#241)
|
||||
|
||||
At outset we offer a ``gather_contexts()`` context manager for
|
||||
concurrently entering a sequence of async context managers (much like
|
||||
a version of ``asyncio.gather()`` but for context managers) and use it
|
||||
in a new ``tractor.open_actor_cluster()`` manager-helper that can be
|
||||
entered to concurrently spawn a flat actor pool. We also now publicly
|
||||
expose our "broadcast channel" APIs (``open_broadcast_receiver()``)
|
||||
from here.
|
||||
|
||||
.. _sub-package: ../tractor/trionics
|
||||
|
||||
- Change the core message loop to handle task and actor-runtime cancel
|
||||
requests immediately instead of scheduling them as is done for rpc-task
|
||||
requests. (#245)
|
||||
|
||||
In order to obtain more reliable teardown mechanics for (complex) actor
|
||||
trees it's important that we specially treat cancel requests as having
|
||||
higher priority. Previously, it was possible that task cancel requests
|
||||
could actually also themselves be cancelled if a "actor-runtime" cancel
|
||||
request was received (can happen during messy multi actor crashes that
|
||||
propagate). Instead cancels now block the msg loop until serviced and
|
||||
a response is relayed back to the requester. This also allows for
|
||||
improved debugger support since we have determinism guarantees about
|
||||
which processes must wait before hard killing their children.
|
||||
|
||||
- Drop Python 3.8 support in favor of rolling with two latest releases
|
||||
for the time being. (#248)
|
||||
|
||||
|
||||
tractor 0.1.0a2 (2021-09-07)
|
||||
============================
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
Switch to using the ``trio`` process spawner by default on windows.
|
||||
|
||||
This gets windows users debugger support (manually tested) and in
|
||||
general a more resilient (nested) actor tree implementation.
|
|
@ -1,9 +0,0 @@
|
|||
Add optional `msgspec <https://jcristharif.com/msgspec/>`_ support over
|
||||
TCP streams as an alernative, faster MessagePack codec.
|
||||
|
||||
This get's us moving toward typed messaging/IPC protocols. Further,
|
||||
``msgspec`` structs may be a valid tool to start for formalizing our "SC
|
||||
dialog un-protocol" messages as described in `#36
|
||||
<https://github.com/goodboy/tractor/issues/36>`_`.
|
||||
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
Introduce a new `sub-package`_ that exposes all our high(er) level trio primitives and goodies, most importantly:
|
||||
|
||||
- A new ``open_actor_cluster`` procedure is available for concurrently spawning a number of actors.
|
||||
- A new ``gather_contexts`` procedure is available for concurrently entering a sequence of async context managers.
|
||||
|
||||
.. _sub-package: ../tractor/trionics
|
|
@ -1,13 +0,0 @@
|
|||
Change the core message loop to handle task and actor-runtime cancel
|
||||
requests immediately instead of scheduling them as is done for rpc-task
|
||||
requests.
|
||||
|
||||
In order to obtain more reliable teardown mechanics for (complex) actor
|
||||
trees it's important that we specially treat cancel requests as having
|
||||
higher priority. Previously, it was possible that task cancel requests
|
||||
could actually also themselves be cancelled if a "actor-runtime" cancel
|
||||
request was received (can happen during messy multi actor crashes that
|
||||
propagate). Instead cancels now block the msg loop until serviced and
|
||||
a response is relayed back to the requester. This also allows for
|
||||
improved debugger support since we have determinism guarantees about
|
||||
which processes must wait before hard killing their children.
|
|
@ -1 +0,0 @@
|
|||
Drop Python 3.8 support in favor of rolling with two latest releases for the time being.
|
Loading…
Reference in New Issue