diff --git a/docs/source/history.rst b/docs/source/history.rst index 33f72d8681..830e3acafc 100644 --- a/docs/source/history.rst +++ b/docs/source/history.rst @@ -5,6 +5,68 @@ Release history .. towncrier release notes start +Trio 0.17.0 (2020-09-15) +------------------------ + +Headline features +~~~~~~~~~~~~~~~~~ + +- Trio now supports automatic :ref:`async generator finalization + `, so more async generators will work even if you + don't wrap them in ``async with async_generator.aclosing():`` + blocks. Please see the documentation for important caveats; in + particular, yielding within a nursery or cancel scope remains + unsupported. (`#265 `__) + + +Features +~~~~~~~~ + +- `trio.open_tcp_stream` has a new ``local_address=`` keyword argument + that can be used on machines with multiple IP addresses to control + which IP is used for the outgoing connection. (`#275 `__) +- If you pass a raw IP address into ``sendto``, it no longer spends any + time trying to resolve the hostname. If you're using UDP, this should + substantially reduce your per-packet overhead. (`#1595 `__) +- `trio.lowlevel.checkpoint` is now much faster. (`#1613 `__) +- We switched to a new, lower-overhead data structure to track upcoming + timeouts, which should make your programs faster. (`#1629 `__) + + +Bugfixes +~~~~~~~~ + +- On macOS and BSDs, explicitly close our wakeup socketpair when we're + done with it. (`#1621 `__) +- Trio can now be imported when `sys.excepthook` is a `functools.partial` instance, which might occur in a + ``pytest-qt`` test function. (`#1630 `__) +- The thread cache didn't release its reference to the previous job. (`#1638 `__) +- On Windows, Trio now works around the buggy behavior of certain + Layered Service Providers (system components that can intercept + network activity) that are built on top of a commercially available + library called Komodia Redirector. This benefits users of products + such as Astrill VPN and Qustodio parental controls. Previously, Trio + would crash on startup when run on a system where such a product was + installed. (`#1659 `__) + + +Deprecations and removals +~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Remove ``wait_socket_*``, ``notify_socket_closing``, ``notify_fd_closing``, ``run_sync_in_worker_thread`` and ``current_default_worker_thread_limiter``. They were deprecated in 0.12.0. (`#1596 `__) + + +Miscellaneous internal changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- When using :ref:`instruments `, you now only "pay for what you use": + if there are no instruments installed that override a particular hook such as + :meth:`~trio.abc.Instrument.before_task_step`, then Trio doesn't waste any effort + on checking its instruments when the event corresponding to that hook occurs. + Previously, installing any instrument would incur all the instrumentation overhead, + even for hooks no one was interested in. (`#1340 `__) + + Trio 0.16.0 (2020-06-10) ------------------------ diff --git a/newsfragments/1340.misc.rst b/newsfragments/1340.misc.rst deleted file mode 100644 index 9899505e2f..0000000000 --- a/newsfragments/1340.misc.rst +++ /dev/null @@ -1,6 +0,0 @@ -When using :ref:`instruments `, you now only "pay for what you use": -if there are no instruments installed that override a particular hook such as -:meth:`~trio.abc.Instrument.before_task_step`, then Trio doesn't waste any effort -on checking its instruments when the event corresponding to that hook occurs. -Previously, installing any instrument would incur all the instrumentation overhead, -even for hooks no one was interested in. diff --git a/newsfragments/1595.feature.rst b/newsfragments/1595.feature.rst deleted file mode 100644 index b7a0df3938..0000000000 --- a/newsfragments/1595.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -If you pass a raw IP address into ``sendto``, it no longer spends any -time trying to resolve the hostname. If you're using UDP, this should -substantially reduce your per-packet overhead. diff --git a/newsfragments/1596.deprecated.rst b/newsfragments/1596.deprecated.rst deleted file mode 100644 index 9736419485..0000000000 --- a/newsfragments/1596.deprecated.rst +++ /dev/null @@ -1 +0,0 @@ -Remove ``wait_socket_*``, ``notify_socket_closing``, ``notify_fd_closing``, ``run_sync_in_worker_thread`` and ``current_default_worker_thread_limiter``. They were deprecated in 0.12.0. diff --git a/newsfragments/1613.feature.rst b/newsfragments/1613.feature.rst deleted file mode 100644 index 2971bb054d..0000000000 --- a/newsfragments/1613.feature.rst +++ /dev/null @@ -1 +0,0 @@ -`trio.lowlevel.checkpoint` is now much faster. diff --git a/newsfragments/1621.bugfix.rst b/newsfragments/1621.bugfix.rst deleted file mode 100644 index 2eb869c969..0000000000 --- a/newsfragments/1621.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -On macOS and BSDs, explicitly close our wakeup socketpair when we're -done with it. diff --git a/newsfragments/1629.feature.rst b/newsfragments/1629.feature.rst deleted file mode 100644 index 6047ae4ccf..0000000000 --- a/newsfragments/1629.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -We switched to a new, lower-overhead data structure to track upcoming -timeouts, which should make your programs faster. diff --git a/newsfragments/1630.bugfix.rst b/newsfragments/1630.bugfix.rst deleted file mode 100644 index 0b33777705..0000000000 --- a/newsfragments/1630.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Trio can now be imported when `sys.excepthook` is a `functools.partial` instance, which might occur in a -``pytest-qt`` test function. diff --git a/newsfragments/1638.bugfix.rst b/newsfragments/1638.bugfix.rst deleted file mode 100644 index 6c6a9a6a5d..0000000000 --- a/newsfragments/1638.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -The thread cache didn't release its reference to the previous job. diff --git a/newsfragments/1659.bugfix.rst b/newsfragments/1659.bugfix.rst deleted file mode 100644 index 395a369002..0000000000 --- a/newsfragments/1659.bugfix.rst +++ /dev/null @@ -1,7 +0,0 @@ -On Windows, Trio now works around the buggy behavior of certain -Layered Service Providers (system components that can intercept -network activity) that are built on top of a commercially available -library called Komodia Redirector. This benefits users of products -such as Astrill VPN and Qustodio parental controls. Previously, Trio -would crash on startup when run on a system where such a product was -installed. diff --git a/newsfragments/265.headline.rst b/newsfragments/265.headline.rst deleted file mode 100644 index 57a1ae30b4..0000000000 --- a/newsfragments/265.headline.rst +++ /dev/null @@ -1,6 +0,0 @@ -Trio now supports automatic :ref:`async generator finalization -`, so more async generators will work even if you -don't wrap them in ``async with async_generator.aclosing():`` -blocks. Please see the documentation for important caveats; in -particular, yielding within a nursery or cancel scope remains -unsupported. diff --git a/newsfragments/275.feature.rst b/newsfragments/275.feature.rst deleted file mode 100644 index 26b8ebb521..0000000000 --- a/newsfragments/275.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -`trio.open_tcp_stream` has a new ``local_address=`` keyword argument -that can be used on machines with multiple IP addresses to control -which IP is used for the outgoing connection. diff --git a/trio/_version.py b/trio/_version.py index 4d1671b9ec..cd6e4e1649 100644 --- a/trio/_version.py +++ b/trio/_version.py @@ -1,3 +1,3 @@ # This file is imported from __init__.py and exec'd from setup.py -__version__ = "0.16.0+dev" +__version__ = "0.17.0+dev"