This repository has been archived by the owner on Mar 23, 2024. It is now read-only.
forked from django/asgiref
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
243 lines (138 loc) · 5.42 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
3.2.10 (2020-08-18)
-------------------
* Fixed bugs due to bad WeakRef handling introduced in 3.2.8
3.2.9 (2020-06-16)
------------------
* Fixed regression with exception handling in 3.2.8 related to the contextvars fix.
3.2.8 (2020-06-15)
------------------
* Fixed small memory leak in local.Local
* contextvars are now persisted through AsyncToSync
3.2.7 (2020-03-24)
------------------
* Bug fixed in local.Local where deleted Locals would occasionally inherit
their storage into new Locals due to memory reuse.
3.2.6 (2020-03-23)
------------------
* local.Local now works in all threading situations, no longer requires
periodic garbage collection, and works with libraries that monkeypatch
threading (like gevent)
3.2.5 (2020-03-11)
------------------
* __self__ is now preserved on methods by async_to_sync
3.2.4 (2020-03-10)
------------------
* Pending tasks/async generators are now cancelled when async_to_sync exits
* Contextvars now propagate changes both ways through sync_to_async
* sync_to_async now preserves attributes on functions it wraps
3.2.3 (2019-10-23)
------------------
* Added support and testing for Python 3.8.
3.2.2 (2019-08-29)
------------------
* WsgiToAsgi maps multi-part request bodies into a single WSGI input file
* WsgiToAsgi passes the `root_path` scope as SCRIPT_NAME
* WsgiToAsgi now checks the scope type to handle `lifespan` better
* WsgiToAsgi now passes the server port as a string, like WSGI
* SyncToAsync values are now identified as coroutine functions by asyncio
* SyncToAsync now handles __self__ correctly for methods
3.2.1 (2019-08-05)
------------------
* sys.exc_info() is now propagated across thread boundaries
3.2.0 (2019-07-29)
------------------
* New "thread_sensitive" argument to SyncToAsync allows for pinning of code into
the same thread as other thread_sensitive code.
* Test collection on Python 3.7 fixed
3.1.4 (2019-07-07)
------------------
* Fixed an incompatibility with Python 3.5 introduced in the last release.
3.1.3 (2019-07-05)
------------------
* async_timeout has been removed as a dependency, so there are now no required
dependencies.
* The WSGI adapter now sets ``REMOTE_ADDR`` from the ASGI ``client``.
3.1.2 (2019-04-17)
------------------
* New thread_critical argument to Local to tell it to not inherit contexts
across threads/tasks.
* Local now inherits across any number of sync_to_async to async_to_sync calls
nested inside each other
3.1.1 (2019-04-13)
------------------
* Local now cleans up storage of old threads and tasks to prevent a memory leak.
3.1.0 (2019-04-13)
------------------
* Added ``asgiref.local`` module to provide threading.local drop-in replacement.
3.0.0 (2019-03-20)
------------------
* Updated to match new ASGI 3.0 spec
* Compatibility library added that allows adapting ASGI 2 apps into ASGI 3 apps
losslessly
2.3.2 (2018-05-23)
------------------
* Packaging fix to allow old async_timeout dependencies (2.0 as well as 3.0)
2.3.1 (2018-05-23)
------------------
* WSGI-to-ASGI adapter now works with empty bodies in responses
* Update async-timeout dependency
2.3.0 (2018-04-11)
------------------
* ApplicationCommunicator now has a receive_nothing() test available
2.2.0 (2018-03-06)
------------------
* Cancelled tasks now correctly cascade-cancel their children
* Communicator.wait() no longer re-raises CancelledError from inner coroutines
2.1.6 (2018-02-19)
------------------
* async_to_sync now works inside of threads (but is still not allowed in threads
that have an active event loop)
2.1.5 (2018-02-14)
------------------
* Fixed issues with async_to_sync not setting the event loop correctly
* Stop async_to_sync being called from threads with an active event loop
2.1.4 (2018-02-07)
------------------
* Values are now correctly returned from sync_to_async and async_to_sync
* ASGI_THREADS environment variable now works correctly
2.1.3 (2018-02-04)
------------------
* Add an ApplicationCommunicator.wait() method to allow you to wait for an
application instance to exit before seeing what it did.
2.1.2 (2018-02-03)
------------------
* Allow AsyncToSync to work if called from a non-async-wrapped sync context.
2.1.1 (2018-02-02)
------------------
* Allow AsyncToSync constructor to be called inside SyncToAsync.
2.1.0 (2018-01-19)
------------------
* Add `asgiref.testing` module with ApplicationCommunicator testing helper
2.0.1 (2017-11-28)
------------------
* Bugfix release to have HTTP response content message as the correct
"http.response.content" not the older "http.response.chunk".
2.0.0 (2017-11-28)
------------------
* Complete rewrite for new async-based ASGI mechanisms and removal of
channel layers.
1.1.2 (2017-05-16)
-----------------
* Conformance test suite now allows for retries and tests group_send's behaviour with capacity
* valid_channel_names now has a receive parameter
1.1.1 (2017-04-02)
------------------
* Error with sending to multi-process channels with the same message fixed
1.1.0 (2017-04-01)
------------------
* Process-specific channel behaviour has been changed, and the base layer
and conformance suites updated to match.
1.0.1 (2017-03-19)
------------------
* Improved channel and group name validation
* Test rearrangements and improvements
1.0.0 (2016-04-11)
------------------
* `receive_many` is now `receive`
* In-memory layer deepcopies messages so they cannot be mutated post-send
* Better errors for bad channel/group names