@@ -5,6 +5,54 @@ Release history
55
66.. towncrier release notes start
77
8+ Trio 0.22.0 (2022-09-28)
9+ ------------------------
10+
11+ Headline features
12+ ~~~~~~~~~~~~~~~~~
13+
14+ - ``MultiError `` has been deprecated in favor of the standard :exc: `BaseExceptionGroup `
15+ (introduced in :pep: `654 `). On Python versions below 3.11, this exception and its
16+ derivative :exc: `ExceptionGroup ` are provided by the backport _. Trio still raises
17+ ``MultiError ``, but it has been refactored into a subclass of :exc: `BaseExceptionGroup `
18+ which users should catch instead of ``MultiError ``. Uses of the ``MultiError.filter() ``
19+ class method should be replaced with :meth: `BaseExceptionGroup.split `. Uses of the
20+ ``MultiError.catch() `` class method should be replaced with either ``except* `` clauses
21+ (on Python 3.11+) or the ``exceptiongroup.catch() `` context manager provided by the
22+ backport _.
23+
24+ See the :ref: `updated documentation <exceptiongroups >` for details.
25+ (`#2211 <https://github.com/python-trio/trio/issues/2211 >`__)
26+
27+ .. _backport : https://pypi.org/project/exceptiongroup/
28+
29+
30+ Features
31+ ~~~~~~~~
32+
33+ - Added support for `Datagram TLS
34+ <https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security> `__,
35+ for secure communication over UDP. Currently requires `PyOpenSSL
36+ <https://pypi.org/p/pyopenssl> `__. (`#2010 <https://github.com/python-trio/trio/issues/2010 >`__)
37+
38+
39+ Trio 0.21.0 (2022-06-07)
40+ ----------------------------
41+
42+ Features
43+ ~~~~~~~~
44+
45+ - Trio now supports Python 3.11. (`#2270
46+ <https://github.com/python-trio/trio/issues/2270> `__, `#2318
47+ <https://github.com/python-trio/trio/issues/2318> `__, `#2319
48+ <https://github.com/python-trio/trio/issues/2319> `__)
49+
50+ Deprecations and Removals
51+ ~~~~~~~~~~~~~~~~~~~~~~~~~
52+
53+ - Remove support for Python 3.6. (`#2210 <https://github.com/python-trio/trio/issues/2210 >`__)
54+
55+
856Trio 0.20.0 (2022-02-21)
957------------------------
1058
@@ -31,8 +79,8 @@ Features
3179Bugfixes
3280~~~~~~~~
3381
34- - Trio now avoids creating cyclic garbage when a `MultiError ` is generated and filtered,
35- including invisibly within the cancellation system. This means errors raised
82+ - Trio now avoids creating cyclic garbage when a `` MultiError `` is generated and
83+ filtered, including invisibly within the cancellation system. This means errors raised
3684 through nurseries and cancel scopes should result in less GC latency. (`#2063 <https://github.com/python-trio/trio/issues/2063 >`__)
3785- Trio now deterministically cleans up file descriptors that were opened before
3886 subprocess creation fails. Previously, they would remain open until the next run of
@@ -271,9 +319,9 @@ Bugfixes
271319- On Ubuntu systems, the system Python includes a custom
272320 unhandled-exception hook to perform `crash reporting
273321 <https://wiki.ubuntu.com/Apport> `__. Unfortunately, Trio wants to use
274- the same hook to print nice `MultiError ` tracebacks, causing a
322+ the same hook to print nice `` MultiError ` ` tracebacks, causing a
275323 conflict. Previously, Trio would detect the conflict, print a warning,
276- and you just wouldn't get nice `MultiError ` tracebacks. Now, Trio has
324+ and you just wouldn't get nice `` MultiError ` ` tracebacks. Now, Trio has
277325 gotten clever enough to integrate its hook with Ubuntu's, so the two
278326 systems should Just Work together. (`#1065 <https://github.com/python-trio/trio/issues/1065 >`__)
279327- Fixed an over-strict test that caused failures on Alpine Linux.
@@ -475,7 +523,7 @@ Features
475523 violated. (One common source of such violations is an async generator
476524 that yields within a cancel scope.) The previous behavior was an
477525 inscrutable chain of TrioInternalErrors. (`#882 <https://github.com/python-trio/trio/issues/882 >`__)
478- - MultiError now defines its ``exceptions `` attribute in ``__init__() ``
526+ - `` MultiError `` now defines its ``exceptions `` attribute in ``__init__() ``
479527 to better support linters and code autocompletion. (`#1066 <https://github.com/python-trio/trio/issues/1066 >`__)
480528- Use ``__slots__ `` in more places internally, which should make Trio slightly faster. (`#984 <https://github.com/python-trio/trio/issues/984 >`__)
481529
@@ -496,7 +544,7 @@ Bugfixes
496544 :meth: `~trio.Path.cwd `, are now async functions. Previously, a bug
497545 in the forwarding logic meant :meth: `~trio.Path.cwd ` was synchronous
498546 and :meth: `~trio.Path.home ` didn't work at all. (`#960 <https://github.com/python-trio/trio/issues/960 >`__)
499- - An exception encapsulated within a :class: ` MultiError ` doesn't need to be
547+ - An exception encapsulated within a `` MultiError ` ` doesn't need to be
500548 hashable anymore.
501549
502550 .. note ::
@@ -1287,7 +1335,7 @@ Other changes
12871335 interfering with direct use of
12881336 :func: `~trio.testing.wait_all_tasks_blocked ` in the same test.
12891337
1290- * :meth: ` MultiError.catch ` now correctly preserves ``__context__ ``,
1338+ * `` MultiError.catch() ` ` now correctly preserves ``__context__ ``,
12911339 despite Python's best attempts to stop us (`#165
12921340 <https://github.com/python-trio/trio/issues/165> `__)
12931341
0 commit comments