Skip to content

Commit a0b972f

Browse files
authored
Merge pull request #72 from oremanj/release-v0.11.0
Release v0.11.0
2 parents fdcf789 + 9efa25c commit a0b972f

File tree

9 files changed

+178
-52
lines changed

9 files changed

+178
-52
lines changed

docs/source/history.rst

Lines changed: 177 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,108 @@ Release history
55

66
.. towncrier release notes start
77
8+
trio-asyncio 0.11.0 (2020-03-09)
9+
--------------------------------
10+
11+
Features
12+
~~~~~~~~
13+
14+
- Substantially reorganize monkeypatching for asyncio event loop and
15+
event loop policy accessors, fixing support for Python 3.8. Also, stop
16+
using features deprecated in Trio 0.12. (`#66 <https://github.com/python-trio/trio-asyncio/issues/66>`__)
17+
18+
Bugfixes
19+
~~~~~~~~
20+
21+
- Calling ``loop.stop`` manually no longer causes a deadlock when
22+
exiting the context of ``trio_asyncio.open_loop`` (`#58 <https://github.com/python-trio/trio-asyncio/issues/58>`__)
23+
24+
- :func:`trio_asyncio.run` now properly returns whatever was returned by
25+
the async function it ran, like :func:`trio.run` does. (`#57 <https://github.com/python-trio/trio-asyncio/issues/57>`__)
26+
27+
- Replace uses of deprecated ``trio.open_cancel_scope()`` with `trio.CancelScope`.
28+
29+
Deprecations and Removals
30+
~~~~~~~~~~~~~~~~~~~~~~~~~
31+
32+
- The non-underscore-prefixed names of trio-asyncio submodules (``trio_asyncio.loop``,
33+
``trio_asyncio.adapter``, etc) have been deprecated; public names should be
34+
imported from ``trio_asyncio`` directly.
35+
36+
``trio_asyncio.current_policy``, ``trio_asyncio.TrioChildWatcher``,
37+
and ``trio_asyncio.TrioPolicy`` have been deprecated with no
38+
replacement. ``current_policy`` is no longer used at all, and the
39+
other two are singletons that can't be customized so there's no reason
40+
to make them publicly visible.
41+
42+
A number of functions which were already documented as deprecated now
43+
raise the new :exc:`~trio_asyncio.TrioAsyncioDeprecationWarning` where
44+
previously they provided either no runtime warning or a generic
45+
:exc:`DeprecationWarning`. (`#64 <https://github.com/python-trio/trio-asyncio/issues/64>`__)
46+
47+
trio-asyncio 0.10.0 (2018-12-09)
48+
--------------------------------
49+
50+
Bugfixes
51+
~~~~~~~~
52+
53+
- Replace deprecated ``trio.Queue`` with new channels, requiring Trio 0.9 or later. (`#49 <https://github.com/python-trio/trio-asyncio/issues/49>`__)
54+
55+
trio-asyncio 0.9.1 (2018-09-06)
56+
-------------------------------
57+
58+
Bugfixes
59+
~~~~~~~~
60+
61+
- Defer creating an asyncio coroutine until asyncio mode is actually entered. (`#40 <https://github.com/python-trio/trio-asyncio/issues/40>`__)
62+
63+
trio-asyncio 0.9.0 (2018-08-31)
64+
-------------------------------
65+
66+
Features
67+
~~~~~~~~
68+
69+
- **Major reorganization:** The main entry point for calling asyncio
70+
from trio is now the :func:`trio_asyncio.aio_as_trio` adapter.
71+
Instead of calling :func:`asyncio.get_event_loop`, directly access the
72+
contextvar ``trio_aio_loop`` (aka :data:`trio_asyncio.current_loop`). (`#36 <https://github.com/python-trio/trio-asyncio/issues/36>`__)
73+
74+
Deprecations and Removals
75+
~~~~~~~~~~~~~~~~~~~~~~~~~
76+
77+
- ``run_asyncio()`` is deprecated: replace with a :func:`aio_as_trio` wrapper.
78+
79+
``trio2aio()`` is deprecated: replace with :func:`aio_as_trio`.
80+
81+
``run_future()`` and ``TrioEventLoop.run_future()`` are deprecated:
82+
replace with :func:`run_aio_future`.
83+
84+
``run_coroutine()`` and ``TrioEventLoop.run_coroutine()`` are
85+
deprecated: replace with :func:`run_aio_coroutine`.
86+
87+
``TrioEventLoop.wrap_generator()`` is deprecated: replace with a
88+
:func:`aio_as_trio` wrapper.
89+
90+
``TrioEventLoop.run_iterator()`` is deprecated: replace with
91+
:func:`aio_as_trio`. (`#36
92+
<https://github.com/python-trio/trio-asyncio/issues/36>`__)
93+
94+
trio-asyncio 0.8.2 (2018-08-25)
95+
-------------------------------
96+
97+
Features
98+
~~~~~~~~
99+
100+
- :func:`sniffio.current_async_library` in a trio-asyncio program now returns
101+
the correct value for the current mode (``"trio"`` or ``"asyncio"``).
102+
8103
trio-asyncio 0.8.1 (2018-08-25)
9104
-------------------------------
10105

11106
Features
12107
~~~~~~~~
13108

14-
- `trio_asyncio` now contains an `allow_asyncio` wrapper which allows you to
109+
- `trio_asyncio` now contains an :func:`allow_asyncio` wrapper which allows you to
15110
seamlessly mix asyncio and trio semantics::
16111

17112
import asyncio
@@ -29,10 +124,86 @@ Features
29124
code. This may or may not be an issue for your code. (`#30
30125
<https://github.com/python-trio/trio-asyncio/issues/30>`__)
31126

127+
- While the test suite still requires Python 3.6, :mod:`trio_asyncio` itself
128+
now works on Python 3.5.3 and later. (`#33
129+
<https://github.com/python-trio/trio-asyncio/issues/33>`__)
32130

33-
Bugfixes
34-
~~~~~~~~
131+
- ``TrioEventLoop.run_asyncio()`` now supports wrapping async iterators
132+
and async context managers, in addition to its existing support for async
133+
functions.
134+
135+
trio-asyncio 0.8.0 (2018-08-03)
136+
-------------------------------
137+
138+
* Add ``TrioEventLoop.run_iterator()`` as an alias for ``run_generator()``.
139+
140+
* Add support for Python 3.7 via a monkey-patch to
141+
:func:`asyncio.set_event_loop_policy`. (`#23
142+
<https://github.com/python-trio/trio-asyncio/issues/23>`__)
143+
144+
* Deprecate the use of "compatibility mode" / "sync event loops", except
145+
as a tool for running the test suites of existing asyncio projects.
146+
147+
trio-asyncio 0.7.5 (2018-07-23)
148+
-------------------------------
149+
150+
* Use a contextvar to represent the current trio-asyncio loop, rather
151+
than the deprecated ``trio.TaskLocal``.
152+
153+
* Use the ``outcome`` library rather than the deprecated ``trio.hazmat.Result``.
154+
155+
* Better handle errors in wrapped async generators.
156+
157+
trio-asyncio 0.7.0 (2018-03-27)
158+
-------------------------------
159+
160+
* The ``@trio2aio`` and ``@aio2trio`` decorators now can be used to decorate
161+
both async generator functions and async functions that take keyword
162+
arguments.
163+
164+
* :func:`open_loop` now takes an optional ``queue_len=`` parameter to specify
165+
the length of the internal callback queue (for performance tuning).
166+
167+
* Add :meth:`BaseTrioEventLoop.synchronize`.
168+
169+
* Monkey-patch :func:`asyncio.get_event_loop_policy` and
170+
:func:`asyncio.get_event_loop` so trio-asyncio works correctly in
171+
multithreaded programs that use a different asyncio event loop in
172+
other threads.
173+
174+
* Add ``wrap_generator()`` and ``run_generator()`` which adapt an asyncio-flavored
175+
async generator to be used from Trio code.
176+
177+
trio-asyncio 0.5.0 (2018-02-20)
178+
-------------------------------
179+
180+
* Support contextvars on Python 3.7 and later.
181+
182+
* Support waiting for child processes even though Trio doesn't (yet).
183+
184+
trio-asyncio 0.4.2 (2018-02-12)
185+
-------------------------------
186+
187+
* Add :func:`trio_asyncio.run`.
188+
189+
* Fix a deadlock in ``SyncTrioEventLoop``. Encourage people to use the
190+
async ``TrioEventLoop`` instead.
191+
192+
trio-asyncio 0.4.1 (2018-02-08)
193+
-------------------------------
194+
195+
* Add ``TrioEventLoop.run_task()`` as an entry point for running Trio code
196+
in a context that allows asyncio calls, for use when neither a Trio nor
197+
an asyncio event loop is running.
198+
199+
trio-asyncio 0.4.0 (2018-02-07)
200+
-------------------------------
201+
202+
* Add support for async loops (:func:`open_loop`) and encourage their use.
203+
Numerous functions renamed.
204+
205+
trio-asyncio 0.3.0 (2017-10-17)
206+
-------------------------------
207+
208+
* Initial release.
35209

36-
- The test suite requires Python 3.6. :mod:`trio_asyncio` itself requires
37-
Python 3.5.3. (`#33
38-
<https://github.com/python-trio/trio-asyncio/issues/33>`__)

newsfragments/36.feature.rst

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

newsfragments/36.removal.rst

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

newsfragments/40.bugfix.rst

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

newsfragments/49.bugfix.rst

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

newsfragments/58.bugfix.rst

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

newsfragments/64.removal.rst

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

newsfragments/66.feature.rst

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

trio_asyncio/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# This file is imported from __init__.py and exec'd from setup.py
22

3-
__version__ = "0.10.0"
3+
__version__ = "0.11.0"

0 commit comments

Comments
 (0)