Skip to content

Commit 8850705

Browse files
authored
Merge pull request #3111 from A5rocks/release-0.27.0
Bump version to 0.27.0
2 parents 2a66a0d + 534ab71 commit 8850705

File tree

13 files changed

+34
-31
lines changed

13 files changed

+34
-31
lines changed

docs/source/history.rst

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,39 @@ Release history
55

66
.. towncrier release notes start
77
8+
Trio 0.27.0 (2024-10-17)
9+
------------------------
10+
11+
Breaking changes
12+
~~~~~~~~~~~~~~~~
13+
14+
- :func:`trio.move_on_after` and :func:`trio.fail_after` previously set the deadline relative to initialization time, instead of more intuitively upon entering the context manager. This might change timeouts if a program relied on this behavior. If you want to restore previous behavior you should instead use ``trio.move_on_at(trio.current_time() + ...)``.
15+
flake8-async has a new rule to catch this, in case you're supporting older trio versions. See :ref:`ASYNC122`. (`#2512 <https://github.com/python-trio/trio/issues/2512>`__)
16+
17+
18+
Features
19+
~~~~~~~~
20+
21+
- :meth:`CancelScope.relative_deadline` and :meth:`CancelScope.is_relative` added, as well as a ``relative_deadline`` parameter to ``__init__``. This allows initializing scopes ahead of time, but where the specified relative deadline doesn't count down until the scope is entered. (`#2512 <https://github.com/python-trio/trio/issues/2512>`__)
22+
- :class:`trio.Lock` and :class:`trio.StrictFIFOLock` will now raise :exc:`trio.BrokenResourceError` when :meth:`trio.Lock.acquire` would previously stall due to the owner of the lock exiting without releasing the lock. (`#3035 <https://github.com/python-trio/trio/issues/3035>`__)
23+
- `trio.move_on_at`, `trio.move_on_after`, `trio.fail_at` and `trio.fail_after` now accept *shield* as a keyword argument. If specified, it provides an initial value for the `~trio.CancelScope.shield` attribute of the `trio.CancelScope` object created by the context manager. (`#3052 <https://github.com/python-trio/trio/issues/3052>`__)
24+
- Added :func:`trio.lowlevel.add_parking_lot_breaker` and :func:`trio.lowlevel.remove_parking_lot_breaker` to allow creating custom lock/semaphore implementations that will break their underlying parking lot if a task exits unexpectedly. :meth:`trio.lowlevel.ParkingLot.break_lot` is also added, to allow breaking a parking lot intentionally. (`#3081 <https://github.com/python-trio/trio/issues/3081>`__)
25+
26+
27+
Bugfixes
28+
~~~~~~~~
29+
30+
- Allow sockets to bind any ``os.PathLike`` object. (`#3041 <https://github.com/python-trio/trio/issues/3041>`__)
31+
- Update ``trio.lowlevel.open_process``'s documentation to allow bytes. (`#3076 <https://github.com/python-trio/trio/issues/3076>`__)
32+
- Update :func:`trio.sleep_forever` to be `NoReturn`. (`#3095 <https://github.com/python-trio/trio/issues/3095>`__)
33+
34+
35+
Improved documentation
36+
~~~~~~~~~~~~~~~~~~~~~~
37+
38+
- Add docstrings for memory channels' ``statistics()`` and ``aclose`` methods. (`#3101 <https://github.com/python-trio/trio/issues/3101>`__)
39+
40+
841
Trio 0.26.2 (2024-08-08)
942
------------------------
1043

newsfragments/2512.breaking.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

newsfragments/2512.feature.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/3035.feature.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/3041.bugfix.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/3052.feature.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/3076.bugfix.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/3081.feature.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/3095.bugfix.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/3101.doc.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)