This repository has been archived by the owner on Nov 5, 2021. It is now read-only.
forked from django/channels
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
252 lines (137 loc) · 6.09 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
244
245
246
247
248
249
250
251
252
0.17.2 (2016-08-04)
-------------------
* New CHANNELS_WS_PROTOCOLS setting if you want Daphne to accept certain
subprotocols
* WebsocketBindingWithMembers allows serialization of non-fields on instances
* Class-based consumers have an .as_route() method that lets you skip using
route_class
* Bindings now work if loaded after app ready state
0.17.1 (2016-07-22)
-------------------
* Bindings now require that `fields` is defined on the class body so all fields
are not sent by default. To restore old behaviour, set it to ['__all__']
* Bindings can now be declared after app.ready() has been called and still work.
* Binding payloads now include the model name as `appname.modelname`.
* A worker_ready signal now gets triggered when `runworker` starts consuming
messages. It does not fire from within `runserver`.
0.17.0 (2016-07-19)
-------------------
* Data Binding framework is added, which allows easy tying of model changes
to WebSockets (and other protocols) and vice-versa.
* Standardised WebSocket/JSON multiplexing introduced
* WebSocket generic consumers now have a 'close' argument on send/group_send
0.16.1 (2016-07-12)
-------------------
* WebsocketConsumer now has a http_user option for auto user sessions.
* consumer_started and consumer_finished signals are now available under
channels.signals.
* Database connections are closed whenever a consumer finishes.
0.16.0 (2016-07-06)
-------------------
* websocket.connect and websocket.receive are now consumed by a no-op consumer
by default if you don't specify anything to consume it, to bring Channels in
line with the ASGI rules on WebSocket backpressure.
* You no longer need to call super's setUp in ChannelTestCase.
0.15.1 (2016-06-29)
-------------------
* Class based consumers now have a self.kwargs
* Fixed bug where empty streaming responses did not send headers or status code
0.15.0 (2016-06-22)
-------------------
* Query strings are now decoded entirely by Django. Must be used with Daphne
0.13 or higher.
0.14.3 (2016-06-21)
-------------------
* + signs in query strings are no longer double-decoded
* Message now has .values(), .keys() and .items() to match dict
0.14.2 (2016-06-16)
-------------------
* Class based consumers now have built-in channel_session and
channel_session_user support
0.14.1 (2016-06-09)
-------------------
* Fix unicode issues with test client under Python 2.7
0.14.0 (2016-05-25)
-------------------
* Class-based consumer pattern and WebSocket consumer now come with Channels
(see docs for more details)
* Better testing utilities including a higher-level Client abstraction with
optional HTTP/WebSocket HttpClient variant.
0.13.1 (2016-05-13)
-------------------
* enforce_ordering now queues future messages in a channel rather than
spinlocking worker processes to achieve delays.
* ConsumeLater no longer duplicates messages when they're requeued below the
limit.
0.13.0 (2016-05-07)
-------------------
* Backpressure is now implemented, meaning responses will pause sending if
the client does not read them fast enough.
* DatabaseChannelLayer has been removed; it was not sensible.
0.12.0 (2016-04-26)
-------------------
* HTTP paths and query strings are now expected to be sent over ASGI as
unescaped unicode. Daphne 0.11.0 is updated to send things in this format.
* request.FILES reading bug fixed
0.11.0 (2016-04-05)
-------------------
* ChannelTestCase base testing class for easier testing of consumers
* Routing rewrite to improve speed with nested includes and remove need for ^ operator
* Timeouts reading very slow request bodies
0.10.3 (2016-03-29)
-------------------
* Better error messages for wrongly-constructed routing lists
* Error when trying to use signed cookie backend with channel_session
* ASGI group_expiry implemented on database channel backend
0.10.2 (2016-03-23)
-------------------
* Regular expressions for routing include() can now be Unicode under Python 3
* Last-resort error handling for HTTP request exceptions inside Django's core
code. If DEBUG is on, shows plain text tracebacks; if it is off, shows
"Internal Server Error".
0.10.1 (2016-03-22)
-------------------
* Regular expressions for HTTP paths can now be Unicode under Python 3
* route() and include() now importable directly from `channels`
* FileResponse send speed improved for all code (previously just for staticfiles)
0.10.0 (2016-03-21)
-------------------
* New routing system
* Updated to match new ASGI single-reader-channel name spec
* Updated to match new ASGI HTTP header encoding spec
0.9.5 (2016-03-10)
------------------
* `runworker` now has an --alias option to specify a different channel layer
* `runserver` correctly falls back to WSGI mode if no channel layers configured
0.9.4 (2016-03-08)
------------------
* Worker processes now exit gracefully (finish their current processing) when
sent SIGTERM or SIGINT.
* `runserver` now has a shorter than standard HTTP timeout configured
of 60 seconds.
0.9.3 (2016-02-28)
------------------
* Static file serving is significantly faster thanks to larger chunk size
* `runworker` now refuses to start if an in memory layer is configured
0.9.2 (2016-02-28)
------------------
* ASGI spec updated to include `order` field for WebSocket messages
* `enforce_ordering` decorator introduced
* DatabaseChannelLayer now uses transactions to stop duplicated messages
0.9.1 (2016-02-21)
------------------
* Fix packaging issues with previous release
0.9 (2016-02-21)
----------------
* Staticfiles support in runserver
* Runserver logs requests and WebSocket connections to console
* Runserver autoreloads correctly
* --noasgi option on runserver to use the old WSGI-based server
* --noworker option on runserver to make it not launch worker threads
* Streaming responses work correctly
* Authentication decorators work again with new ASGI spec
* channel_session_user_from_http decorator introduced
* HTTP Long Poll support (raise ResponseLater)
* Handle non-latin1 request body encoding
* ASGI conformance tests for built-in database backend
* Moved some imports around for more sensible layout