Skip to content

Commit

Permalink
Bump version to 0.23.0
Browse files Browse the repository at this point in the history
  • Loading branch information
A5rocks committed Nov 3, 2023
1 parent c979257 commit eef24cb
Show file tree
Hide file tree
Showing 14 changed files with 72 additions and 45 deletions.
71 changes: 71 additions & 0 deletions docs/source/history.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,77 @@ Release history

.. towncrier release notes start
Trio 0.23.0 (2023-11-03)
------------------------

Headline features
~~~~~~~~~~~~~~~~~

- Add type hints. (`#543 <https://github.com/python-trio/trio/issues/543>`__)


Features
~~~~~~~~

- When exiting a nursery block, the parent task always waits for child
tasks to exit. This wait cannot be cancelled. However, previously, if
you tried to cancel it, it *would* inject a `Cancelled` exception,
even though it wasn't cancelled. Most users probably never noticed
either way, but injecting a `Cancelled` here is not really useful, and
in some rare cases caused confusion or problems, so Trio no longer
does that. (`#1457 <https://github.com/python-trio/trio/issues/1457>`__)
- If called from a thread spawned by `trio.to_thread.run_sync`, `trio.from_thread.run` and
`trio.from_thread.run_sync` now reuse the task and cancellation status of the host task;
this means that context variables and cancel scopes naturally propagate 'through'
threads spawned by Trio. You can also use `trio.from_thread.check_cancelled`
to efficiently check for cancellation without reentering the Trio thread. (`#2392 <https://github.com/python-trio/trio/issues/2392>`__)
- :func:`trio.lowlevel.start_guest_run` now does a bit more setup of the guest run
before it returns to its caller, so that the caller can immediately make calls to
:func:`trio.current_time`, :func:`trio.lowlevel.spawn_system_task`,
:func:`trio.lowlevel.current_trio_token`, etc. (`#2696 <https://github.com/python-trio/trio/issues/2696>`__)


Bugfixes
~~~~~~~~

- When a starting function raises before calling :func:`trio.TaskStatus.started`,
:func:`trio.Nursery.start` will no longer wrap the exception in an undocumented
:exc:`ExceptionGroup`. Previously, :func:`trio.Nursery.start` would incorrectly
raise an :exc:`ExceptionGroup` containing it when using ``trio.run(...,
strict_exception_groups=True)``. (`#2611 <https://github.com/python-trio/trio/issues/2611>`__)


Deprecations and removals
~~~~~~~~~~~~~~~~~~~~~~~~~

- To better reflect the underlying thread handling semantics,
the keyword argument for `trio.to_thread.run_sync` that was
previously called ``cancellable`` is now named ``abandon_on_cancel``.
It still does the same thing -- allow the thread to be abandoned
if the call to `trio.to_thread.run_sync` is cancelled -- but since we now
have other ways to propagate a cancellation without abandoning
the thread, "cancellable" has become somewhat of a misnomer.
The old ``cancellable`` name is now deprecated. (`#2841 <https://github.com/python-trio/trio/issues/2841>`__)
- Deprecated support for ``math.inf`` for the ``backlog`` argument in ``open_tcp_listeners``, making its docstring correct in the fact that only ``TypeError`` is raised if invalid arguments are passed. (`#2842 <https://github.com/python-trio/trio/issues/2842>`__)


Removals without deprecations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Drop support for Python3.7 and PyPy3.7/3.8. (`#2668 <https://github.com/python-trio/trio/issues/2668>`__)
- Removed special ``MultiError`` traceback handling for IPython. As of `version 8.15 <https://ipython.readthedocs.io/en/stable/whatsnew/version8.html#ipython-8-15>`_ `ExceptionGroup` is handled natively. (`#2702 <https://github.com/python-trio/trio/issues/2702>`__)


Miscellaneous internal changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Trio now indicates its presence to `sniffio` using the ``sniffio.thread_local``
interface that is preferred since sniffio v1.3.0. This should be less likely
than the previous approach to cause :func:`sniffio.current_async_library` to
return incorrect results due to unintended inheritance of contextvars. (`#2700 <https://github.com/python-trio/trio/issues/2700>`__)
- On windows, if SIO_BASE_HANDLE failed and SIO_BSP_HANDLE_POLL didn't return a different socket, runtime error will now raise from the OSError that indicated the issue so that in the event it does happen it might help with debugging. (`#2807 <https://github.com/python-trio/trio/issues/2807>`__)


Trio 0.22.2 (2023-07-13)
------------------------

Expand Down
7 changes: 0 additions & 7 deletions newsfragments/1457.feature.rst

This file was deleted.

5 changes: 0 additions & 5 deletions newsfragments/2392.feature.rst

This file was deleted.

5 changes: 0 additions & 5 deletions newsfragments/2611.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion newsfragments/2668.removal.rst

This file was deleted.

4 changes: 0 additions & 4 deletions newsfragments/2696.feature.rst

This file was deleted.

4 changes: 0 additions & 4 deletions newsfragments/2700.misc.rst

This file was deleted.

1 change: 0 additions & 1 deletion newsfragments/2702.removal.rst

This file was deleted.

1 change: 0 additions & 1 deletion newsfragments/2807.misc.rst

This file was deleted.

8 changes: 0 additions & 8 deletions newsfragments/2841.deprecated.rst

This file was deleted.

1 change: 0 additions & 1 deletion newsfragments/2842.deprecated.rst

This file was deleted.

1 change: 0 additions & 1 deletion newsfragments/543.headline.rst

This file was deleted.

6 changes: 0 additions & 6 deletions trio/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,6 @@
_deprecate.enable_attribute_deprecations(__name__)

__deprecated_attributes__: dict[str, _deprecate.DeprecatedAttribute] = {
"open_process": _deprecate.DeprecatedAttribute(
value=lowlevel.open_process,
version="0.20.0",
issue=1104,
instead="trio.lowlevel.open_process",
),
"MultiError": _deprecate.DeprecatedAttribute(
value=_MultiError,
version="0.22.0",
Expand Down
2 changes: 1 addition & 1 deletion trio/_version.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# This file is imported from __init__.py and exec'd from setup.py

__version__ = "0.22.2+dev"
__version__ = "0.23.0"

0 comments on commit eef24cb

Please sign in to comment.