You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/source/history.rst
+41Lines changed: 41 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,47 @@ Release history
5
5
6
6
.. towncrier release notes start
7
7
8
+
Trio 0.25.0 (2024-03-17)
9
+
------------------------
10
+
11
+
Breaking changes
12
+
~~~~~~~~~~~~~~~~
13
+
14
+
- The :ref:`strict_exception_groups <strict_exception_groups>` parameter now defaults to `True` in `trio.run` and `trio.lowlevel.start_guest_run`. `trio.open_nursery` still defaults to the same value as was specified in `trio.run`/`trio.lowlevel.start_guest_run`, but if you didn't specify it there then all subsequent calls to `trio.open_nursery` will change.
15
+
This is unfortunately very tricky to change with a deprecation period, as raising a `DeprecationWarning` whenever :ref:`strict_exception_groups <strict_exception_groups>` is not specified would raise a lot of unnecessary warnings.
16
+
17
+
Notable side effects of changing code to run with ``strict_exception_groups==True``
18
+
19
+
* If an iterator raises `StopAsyncIteration` or `StopIteration` inside a nursery, then python will not recognize wrapped instances of those for stopping iteration.
20
+
* `trio.run_process` is now documented that it can raise an `ExceptionGroup`. It previously could do this in very rare circumstances, but with :ref:`strict_exception_groups <strict_exception_groups>` set to `True` it will now do so whenever exceptions occur in ``deliver_cancel`` or with problems communicating with the subprocess.
21
+
22
+
* Errors in opening the process is now done outside the internal nursery, so if code previously ran with ``strict_exception_groups=True`` there are cases now where an `ExceptionGroup` is *no longer* added.
23
+
* `trio.TrioInternalError` ``.__cause__`` might be wrapped in one or more `ExceptionGroups <ExceptionGroup>` (`#2786 <https://github.com/python-trio/trio/issues/2786>`__)
24
+
25
+
26
+
Features
27
+
~~~~~~~~
28
+
29
+
- Add `trio.testing.wait_all_threads_completed`, which blocks until no threads are running tasks. This is intended to be used in the same way as `trio.testing.wait_all_tasks_blocked`. (`#2937 <https://github.com/python-trio/trio/issues/2937>`__)
30
+
- :class:`Path` is now a subclass of :class:`pathlib.PurePath`, allowing it to interoperate with other standard
31
+
:mod:`pathlib` types.
32
+
33
+
Instantiating :class:`Path` now returns a concrete platform-specific subclass, one of :class:`PosixPath` or
34
+
:class:`WindowsPath`, matching the behavior of :class:`pathlib.Path`. (`#2959 <https://github.com/python-trio/trio/issues/2959>`__)
35
+
36
+
37
+
Bugfixes
38
+
~~~~~~~~
39
+
40
+
- The pthread functions are now correctly found on systems using vanilla versions of musl libc. (`#2939 <https://github.com/python-trio/trio/issues/2939>`__)
41
+
42
+
43
+
Miscellaneous internal changes
44
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45
+
46
+
- use the regular readme for the PyPI long_description (`#2866 <https://github.com/python-trio/trio/issues/2866>`__)
0 commit comments