forked from celery/celery
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changelog
452 lines (251 loc) · 13.3 KB
/
Changelog
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
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
.. _changelog:
================
Change history
================
This document contains change notes for bugfix releases in
the 4.x series, please see :ref:`whatsnew-4.2` for
an overview of what's new in Celery 4.2.
4.2.1
=====
:release-date: 2018-07-18 11:00 AM IST
:release-by: Omer Katz
- **Result Backend**: Fix deserialization of exceptions that are present in the producer codebase but not in the consumer codebase.
Contributed by **John Arnold**
- **Message Protocol Compatibility**: Fix error caused by an invalid (None) timelimit value in the message headers when migrating messages from 3.x to 4.x.
Contributed by **Robert Kopaczewski**
- **Result Backend**: Fix serialization of exception arguments when exception arguments are not JSON serializable by default.
Contributed by **Tom Booth**
- **Worker**: Fixed multiple issues with rate limited tasks
Maintain scheduling order.
Fix possible scheduling of a :class:`celery.worker.request.Request` with the wrong :class:`kombu.utils.limits.TokenBucket` which could cause tasks' rate limit to behave incorrectly.
Fix possible duplicated execution of tasks that were rate limited or if ETA/Countdown was provided for them.
Contributed by :github_user:`ideascf`
- **Worker**: Defensively handle invalid timelimit header values in requests.
Contributed by **Omer Katz**
Documentation fixes:
- **Matt Wiens**
- **Seunghun Lee**
- **Lewis M. Kabui**
- **Prathamesh Salunkhe**
4.2.0
=====
:release-date: 2018-06-10 21:30 PM IST
:release-by: Omer Katz
- **Task**: Add ``ignore_result`` as task execution option (#4709, #3834)
Contributed by **Andrii Kostenko** and **George Psarakis**.
- **Redis Result Backend**: Do not create PubSub subscriptions when results are ignored (#4709, #3834)
Contributed by **Andrii Kostenko** and **George Psarakis**.
- **Redis Result Backend**: Result consumer always unsubscribes when task state is ready (#4666)
Contributed by **George Psarakis**.
- **Development/Testing**: Add docker-compose and base Dockerfile for development (#4482)
Contributed by **Chris Mitchell**.
- **Documentation/Sphinx**: Teach autodoc to document tasks if undoc-members is not set (#4588)
Contributed by **Leo Singer**.
- **Documentation/Sphinx**: Put back undoc-members option in sphinx test (#4586)
Contributed by **Leo Singer**.
- **Documentation/Sphinx**: Sphinx autodoc picks up tasks automatically only if `undoc-members` is set (#4584)
Contributed by **Leo Singer**.
- **Task**: Fix shadow_name issue when using previous version Task class (#4572)
Contributed by :github_user:`pachewise`.
- **Task**: Add support for bound tasks as `link_error` parameter (Fixes #3723) (#4545)
Contributed by :github_user:`brabiega`.
- **Deployment**: Add a command line option for setting the Result Backend URL (#4549)
Contributed by :github_user:`y0ngdi`.
- **CI**: Enable pip cache in appveyor build (#4546)
Contributed by **Thijs Triemstra**.
- **Concurrency/Asynpool**: Fix errno property name shadowing.
Contributed by **Omer Katz**.
- **DynamoDB Backend**: Configurable endpoint URL (#4532)
Contributed by **Bohdan Rybak**.
- **Timezones**: Correctly detect UTC timezone and timezone from settings (Fixes #4517) (#4519)
Contributed by :github_user:`last-partizan`.
- **Control**: Cleanup the mailbox's producer pool after forking (#4472)
Contributed by **Nick Eaket**.
- **Documentation**: Start Celery and Celery Beat on Azure WebJob (#4484)
Contributed by **PauloPeres**.
- **Celery Beat**: Schedule due tasks on startup, after Beat restart has occurred (#4493)
Contributed by **Igor Kasianov**.
- **Worker**: Use absolute time when task is accepted by worker pool (#3684)
Contributed by **Régis Behmo**.
- **Canvas**: Propagate arguments to chains inside groups (#4481)
Contributed by **Chris Mitchell**.
- **Canvas**: Fix `Task.replace` behavior in nested chords (fixes #4368) (#4369)
Contributed by **Denis Shirokov** & **Alex Hill**.
- **Installation**: Pass python_requires argument to setuptools (#4479)
Contributed by **Jon Dufresne**.
- **Message Protocol Compatibility**: Handle "hybrid" messages that have moved between Celery versions (#4358) (Issue #4356)
Contributed by **Russell Keith-Magee**.
- **Canvas**: request on_timeout now ignores soft time limit exception (fixes #4412) (#4473)
Contributed by **Alex Garel**.
- **Redis Result Backend**: Integration test to verify PubSub unsubscriptions (#4468)
Contributed by **George Psarakis**.
- **Message Protocol Properties**: Allow the shadow keyword argument and the shadow_name method to set shadow properly (#4381)
Contributed by :github_user:`hclihn`.
- **Canvas**: Run chord_unlock on same queue as chord body (#4448) (Issue #4337)
Contributed by **Alex Hill**.
- **Canvas**: Support chords with empty header group (#4443)
Contributed by **Alex Hill**.
- **Timezones**: make astimezone call in localize more safe (#4324)
Contributed by **Matt Davis**.
- **Canvas**: Fix length-1 and nested chords (#4437) (Issues #4393, #4055, #3885, #3597, #3574, #3323, #4301)
Contributed by **Alex Hill**.
- **CI**: Run `Openstack Bandit <https://pypi.org/project/bandit/1.0.1/>`_ in Travis CI in order to detect security issues.
Contributed by **Omer Katz**.
- **CI**: Run `isort <https://github.com/timothycrosley/isort>`_ in Travis CI in order to lint Python **import** statements.
Contributed by **Omer Katz**.
- **Canvas**: Resolve TypeError on `.get` from nested groups (#4432) (Issue #4274)
Contributed by **Misha Wolfson**.
- **CouchDB Backend**: Correct CouchDB key string type for Python 2/3 compatibility (#4166)
Contributed by :github_user:`fmind` && **Omer Katz**.
- **Group Result**: Fix current_app fallback in GroupResult.restore() (#4431)
Contributed by **Alex Hill**.
- **Consul Backend**: Correct key string type for Python 2/3 compatibility (#4416)
Contributed by **Wido den Hollander**.
- **Group Result**: Correctly restore an empty GroupResult (#2202) (#4427)
Contributed by **Alex Hill** & **Omer Katz**.
- **Result**: Disable synchronous waiting for sub-tasks on eager mode(#4322)
Contributed by **Denis Podlesniy**.
- **Celery Beat**: Detect timezone or Daylight Saving Time changes (#1604) (#4403)
Contributed by **Vincent Barbaresi**.
- **Canvas**: Fix append to an empty chain. Fixes #4047. (#4402)
Contributed by **Omer Katz**.
- **Task**: Allow shadow to override task name in trace and logging messages. (#4379)
Contributed by :github_user:`hclihn`.
- **Documentation/Sphinx**: Fix getfullargspec Python 2.x compatibility in contrib/sphinx.py (#4399)
Contributed by **Javier Martin Montull**.
- **Documentation**: Updated installation instructions for SQS broker (#4382)
Contributed by **Sergio Fernandez**.
- **Celery Beat**: Better equality comparison for ScheduleEntry instances (#4312)
Contributed by :github_user:`mariia-zelenova`.
- **Task**: Adding 'shadow' property to as_task_v2 (#4350)
Contributed by **Marcelo Da Cruz Pinto**.
- Try to import directly, do not use deprecated imp method (#4216)
Contributed by **Tobias Kunze**.
- **Task**: Enable `kwargsrepr` and `argsrepr` override for modifying task argument representation (#4260)
Contributed by **James M. Allen**.
- **Result Backend**: Add Redis Sentinel backend (#4144)
Contributed by **Geoffrey Bauduin**.
- Use unique time values for Collections/LimitedSet (#3879 and #3891) (#3892)
Contributed by :github_user:`lead2gold`.
- **CI**: Report coverage for all result backends.
Contributed by **Omer Katz**.
- **Django**: Use Django DB max age connection setting (fixes #4116) (#4292)
Contributed by **Marco Schweighauser**.
- **Canvas**: Properly take into account chain tasks link_error (#4240)
Contributed by :github_user:`agladkov`.
- **Canvas**: Allow to create group with single task (fixes issue #4255) (#4280)
Contributed by :github_user:`agladkov`.
- **Canvas**: Copy dictionary parameter in chord.from_dict before modifying (fixes issue #4223) (#4278)
Contributed by :github_user:`agladkov`.
- **Results Backend**: Add Cassandra options (#4224)
Contributed by **Scott Cooper**.
- **Worker**: Apply rate limiting for tasks with ETA (#4251)
Contributed by :github_user:`arpanshah29`.
- **Celery Beat**: support scheduler entries without a schedule (#4235)
Contributed by **Markus Kaiserswerth**.
- **SQS Broker**: Updated SQS requirements file with correct boto3 version (#4231)
Contributed by **Alejandro Varas**.
- Remove unused code from _create_app contextmanager (#4204)
Contributed by **Ryan P Kilby**.
- **Group Result**: Modify GroupResult.as_tuple() to include parent (fixes #4106) (#4205)
Contributed by :github_user:`pachewise`.
- **Beat**: Set default scheduler class in beat command. (#4189)
Contributed by :github_user:`Kxrr`.
- **Worker**: Retry signal receiver after raised exception (#4192)
Contributed by **David Davis**.
- **Task**: Allow custom Request class for tasks (#3977)
Contributed by **Manuel Vázquez Acosta**.
- **Django**: Django fixup should close all cache backends (#4187)
Contributed by **Raphaël Riel**.
- **Deployment**: Adds stopasgroup to the supervisor scripts (#4200)
Contributed by :github_user:`martialp`.
- Using Exception.args to serialize/deserialize exceptions (#4085)
Contributed by **Alexander Ovechkin**.
- **Timezones**: Correct calculation of application current time with timezone (#4173)
Contributed by **George Psarakis**.
- **Remote Debugger**: Set the SO_REUSEADDR option on the socket (#3969)
Contributed by **Theodore Dubois**.
- **Django**: Celery ignores exceptions raised during `django.setup()` (#4146)
Contributed by **Kevin Gu**.
- Use heartbeat setting from application configuration for Broker connection (#4148)
Contributed by :github_user:`mperice`.
- **Celery Beat**: Fixed exception caused by next_transit receiving an unexpected argument. (#4103)
Contributed by **DDevine**.
- **Task** Introduce exponential backoff with Task auto-retry (#4101)
Contributed by **David Baumgold**.
- **AsyncResult**: Remove weak-references to bound methods in AsyncResult promises. (#4131)
Contributed by **Vinod Chandru**.
- **Development/Testing**: Allow eager application of canvas structures (#4576)
Contributed by **Nicholas Pilon**.
- **Command Line**: Flush stderr before exiting with error code 1.
Contributed by **Antonin Delpeuch**.
- **Task**: Escapes single quotes in kwargsrepr strings.
Contributed by **Kareem Zidane**
- **AsyncResult**: Restore ability to join over ResultSet after fixing celery/#3818.
Contributed by **Derek Harland**
- **Redis Results Backend**: Unsubscribe on message success.
Previously Celery would leak channels, filling the memory of the Redis instance.
Contributed by **George Psarakis**
- **Task**: Only convert eta to isoformat when it is not already a string.
Contributed by **Omer Katz**
- **Redis Results Backend**: The result_backend setting now supports rediss:// URIs
Contributed by **James Remeika**
- **Canvas** Keyword arguments are passed to tasks in chain as expected.
Contributed by :github_user:`tothegump`
- **Django** Fix a regression casuing Celery to crash when using Django.
Contributed by **Jonas Haag**
- **Canvas** Chain with one task now runs as expected.
Contributed by :github_user:`tothegump`
- **Kombu** Celery 4.2 now requires Kombu 4.2 or better.
Contributed by **Omer Katz & Asif Saifuddin Auvi**
- `GreenletExit` is not in `__all__` in greenlet.py which can not be imported by Python 3.6.
The import was adjusted to work on Python 3.6 as well.
Contributed by **Hsiaoming Yang**
- Fixed a regression that occured during the development of Celery 4.2 which caused `celery report` to crash when Django is installed.
Contributed by **Josue Balandrano Coronel**
- Matched the behavior of `GroupResult.as_tuple()` to that of `AsyncResult.as_tuple()`.
The group's parent is now serialized correctly.
Contributed by **Josue Balandrano Coronel**
- Use Redis coercion mechanism for converting URI query parameters.
Contributed by **Justin Patrin**
- Fixed the representation of `GroupResult`.
The dependency graph is now presented correctly.
Contributed by **Josue Balandrano Coronel**
Documentation, CI, Installation and Tests fixes:
- **Sammie S. Taunton**
- **Dan Wilson**
- :github_user:`pachewise`
- **Sergi Almacellas Abellana**
- **Omer Katz**
- **Alex Zaitsev**
- **Leo Singer**
- **Rachel Johnson**
- **Jon Dufresne**
- **Samuel Dion-Girardeau**
- **Ryan Guest**
- **Huang Huang**
- **Geoffrey Bauduin**
- **Andrew Wong**
- **Mads Jensen**
- **Jackie Leng**
- **Harry Moreno**
- :github_user:`michael-k`
- **Nicolas Mota**
- **Armenak Baburyan**
- **Patrick Zhang**
- :github_user:`anentropic`
- :github_user:`jairojair`
- **Ben Welsh**
- **Michael Peake**
- **Fengyuan Chen**
- :github_user:`arpanshah29`
- **Xavier Hardy**
- **Shitikanth**
- **Igor Kasianov**
- **John Arnold**
- :github_user:`dmollerm`
- **Robert Knight**
- **Asif Saifuddin Auvi**
- **Eduardo Ramírez**
- **Kamil Breguła**
- **Juan Gutierrez**