forked from celery/celery
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changelog
386 lines (245 loc) · 10.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
.. _changelog:
================
Change history
================
This document contains change notes for bugfix releases in
the 4.0.x series (latentcall), please see :ref:`whatsnew-4.0` for
an overview of what's new in Celery 4.0.
.. _version-4.0.3:
4.0.3
=====
:release-date: 2017-??-?? ??:?? PM PST
:release-by: Ask Solem
- **Requirements**
- Now depends on :ref:`Kombu 4.0.3 <kombu:version-4.0.3>`.
- **Results**: Elasticsearch now reuses fields when new results are added.
Contributed by **Mike Chen**.
- **Results**: Fixed MongoDB integration when using binary encodings
(Issue #3575).
Contributed by **Andrew de Quincey**.
- **Worker**: Making missing ``*args`` and ``**kwargs`` in Task protocol 1
return empty value in protocol 2 (Issue #3687).
Contributed by **Roman Sichny**.
- **App**: Fixed :exc:`TypeError` in AMQP when using deprecated signal
(Issue #3707).
Contributed by :github_user:`michael-k`.
- **Beat**: Added a transparent method to update the scheduler heap.
Contributed by **Alejandro Pernin**.
- **Task**: Fixed handling of tasks with keyword arguments on Python 3
(Issue #3657).
Contributed by **Roman Sichny**.
- **Task**: Fixed request context for blocking task apply by adding missing
hostname attribute.
Contributed by **Marat Sharafutdinov**.
- **Task**: Added option to run subtasks synchronously with
``disable_sync_subtasks`` argument.
Contributed by :github_user:`shalev67`.
- **App**: Fixed chaining of replaced tasks (Issue #3726).
Contributed by **Morgan Doocy**.
- **Canvas**: Fixed bug where replaced tasks with groups were not completing
(Issue #3725).
Contributed by **Morgan Doocy**.
- **Worker**: Fixed problem where consumer does not shutdown properly when
embedded in a gevent application (Issue #3745).
Contributed by **Arcadiy Ivanov**.
- **Results**: Added support for using AWS DynamoDB as a result backend.
Contributed by **George Psarakis**.
- **Testing**: Added caching on pip installs.
Contributed by :github_user:`orf`.
- **Worker**: Prevent consuming queue before ready on startup (Issue #3620).
Contributed by **Alan Hamlett**.
- **App**: Fixed task ETA issues when timezone is defined in configuration
(Issue #3753).
Contributed by **George Psarakis**.
- **Utils**: ``maybe_make_aware`` should not modify datetime when it is
already timezone-aware (Issue #3849).
Contributed by **Taylor C. Richberger**.
- **App**: Fixed retrying tasks with expirations (Issue #3734).
Contributed by **Brendan MacDonell**.
- **Results**: Allow unicode message for exceptions raised in task
(Issue #3858).
Contributed by :github_user:`staticfox`.
- **Canvas**: Fixed :exc:`IndexError` raised when chord has an empty header.
Contributed by **Marc Gibbons**.
- **Canvas**: Avoid duplicating chains in chords (Issue #3771).
Contributed by **Ryan Hiebert** and **George Psarakis**.
- **Utils**: Allow class methods to define tasks (Issue #3863).
Contributed by **George Psarakis**.
- **Beat**: Populate heap when periodic tasks are changed.
Contributed by :github_user:`wzywno` and **Brian May**.
- **Results**: Added support for Elasticsearch backend options settings.
Contributed by :github_user:`Acey9`.
- **Events**: Ensure ``Task.as_dict()`` works when not all information about
task is available.
Contributed by :github_user:`tramora`.
- **Schedules**: Fixed pickled crontab schedules to restore properly (Issue #3826).
Contributed by **Taylor C. Richberger**.
- **Results**: Added SSL option for redis backends (Issue #3830).
Contributed by **Chris Kuehl**.
- Documentation and examples improvements by:
- **Bruno Alla**
- **Jamie Alessio**
- **Peter Bittner**
- **Jon Dufresne**
- **Sergey Fursov**
- **Daniel Hahler**
- **Mike Helmick**
- **Marc Hörsken**
- **Christopher Hoskin**
- **Michal Kuffa**
- **Simon Legner**
- **Ed Morley**
- **Dmytro Petruk**
- **Salvatore Rinchiera**
- **Arnaud Rocher**
- **YuLun Shih**
- **Tom 'Biwaa' Riat**
- **Arthur Vigil**
- **Joey Wilhelm**
- **Jian Yu**
- :github_user:`baixuexue123`
- :github_user:`bronsen`
- :github_user:`michael-k`
- :github_user:`orf`
- :github_user:`3lnc`
.. _version-4.0.3:
4.0.2
=====
:release-date: 2016-12-15 03:40 PM PST
:release-by: Ask Solem
- **Requirements**
- Now depends on :ref:`Kombu 4.0.2 <kombu:version-4.0.2>`.
- **Tasks**: Fixed problem with JSON serialization of `group`
(``keys must be string`` error, Issue #3688).
- **Worker**: Fixed JSON serialization issue when using ``inspect active``
and friends (Issue #3667).
- **App**: Fixed saferef errors when using signals (Issue #3670).
- **Prefork**: Fixed bug with pack requiring bytes argument
on Python 2.7.5 and earlier (Issue #3674).
- **Tasks**: Saferepr did not handle unicode in bytestrings on Python 2
(Issue #3676).
- **Testing**: Added new ``celery_worker_paremeters`` fixture.
Contributed by **Michael Howitz**.
- **Tasks**: Added new ``app`` argument to ``GroupResult.restore``
(Issue #3669).
This makes the restore method behave the same way as the ``GroupResult``
constructor.
Contributed by **Andreas Pelme**.
- **Tasks**: Fixed type checking crash when task takes ``*args`` on Python 3
(Issue #3678).
- Documentation and examples improvements by:
- **BLAGA Razvan-Paul**
- **Michael Howitz**
- :github_user:`paradox41`
.. _version-4.0.1:
4.0.1
=====
:release-date: 2016-12-08 05:22 PM PST
:release-by: Ask Solem
* [Security: `CELERYSA-0003`_] Insecure default configuration
The default :setting:`accept_content` setting was set to allow
deserialization of pickled messages in Celery 4.0.0.
The insecure default has been fixed in 4.0.1, and you can also
configure the 4.0.0 version to explicitly only allow json serialized
messages:
.. code-block:: python
app.conf.accept_content = ['json']
.. _`CELERYSA-0003`:
https://github.com/celery/celery/tree/master/docs/sec/CELERYSA-0003.txt
- **Tasks**: Added new method to register class-based tasks (Issue #3615).
To register a class based task you should now call ``app.register_task``:
.. code-block:: python
from celery import Celery, Task
app = Celery()
class CustomTask(Task):
def run(self):
return 'hello'
app.register_task(CustomTask())
- **Tasks**: Argument checking now supports keyword-only arguments on Python3
(Issue #3658).
Contributed by :github_user:`sww`.
- **Tasks**: The ``task-sent`` event was not being sent even if
configured to do so (Issue #3646).
- **Worker**: Fixed AMQP heartbeat support for eventlet/gevent pools
(Issue #3649).
- **App**: ``app.conf.humanize()`` would not work if configuration
not finalized (Issue #3652).
- **Utils**: ``saferepr`` attempted to show iterables as lists
and mappings as dicts.
- **Utils**: ``saferepr`` did not handle unicode-errors
when attempting to format ``bytes`` on Python 3 (Issue #3610).
- **Utils**: ``saferepr`` should now properly represent byte strings
with non-ascii characters (Issue #3600).
- **Results**: Fixed bug in elasticsearch where _index method missed
the body argument (Issue #3606).
Fix contributed by **何翔宇** (Sean Ho).
- **Canvas**: Fixed :exc:`ValueError` in chord with single task header
(Issue #3608).
Fix contributed by **Viktor Holmqvist**.
- **Task**: Ensure class-based task has name prior to registration
(Issue #3616).
Fix contributed by **Rick Wargo**.
- **Beat**: Fixed problem with strings in shelve (Issue #3644).
Fix contributed by **Alli**.
- **Worker**: Fixed :exc:`KeyError` in ``inspect stats`` when ``-O`` argument
set to something other than ``fast`` or ``fair`` (Issue #3621).
- **Task**: Retried tasks were no longer sent to the original queue
(Issue #3622).
- **Worker**: Python 3: Fixed None/int type comparison in
:file:`apps/worker.py` (Issue #3631).
- **Results**: Redis has a new :setting:`redis_socket_connect_timeout`
setting.
- **Results**: Redis result backend passed the ``socket_connect_timeout``
argument to UNIX socket based connections by mistake, causing a crash.
- **Worker**: Fixed missing logo in worker splash screen when running on
Python 3.x (Issue #3627).
Fix contributed by **Brian Luan**.
- **Deps**: Fixed ``celery[redis]`` bundle installation (Issue #3643).
Fix contributed by **Rémi Marenco**.
- **Deps**: Bundle ``celery[sqs]`` now also requires :pypi:`pycurl`
(Issue #3619).
- **Worker**: Hard time limits were no longer being respected (Issue #3618).
- **Worker**: Soft time limit log showed ``Trues`` instead of the number
of seconds.
- **App**: ``registry_cls`` argument no longer had any effect (Issue #3613).
- **Worker**: Event producer now uses ``connection_for_Write`` (Issue #3525).
- **Results**: Redis/memcache backends now uses :setting:`result_expires`
to expire chord counter (Issue #3573).
Contributed by **Tayfun Sen**.
- **Django**: Fixed command for upgrading settings with Django (Issue #3563).
Fix contributed by **François Voron**.
- **Testing**: Added a ``celery_parameters`` test fixture to be able to use
customized ``Celery`` init parameters. (#3626)
Contributed by **Steffen Allner**.
- Documentation improvements contributed by
- :github_user:`csfeathers`
- **Moussa Taifi**
- **Yuhannaa**
- **Laurent Peuch**
- **Christian**
- **Bruno Alla**
- **Steven Johns**
- :github_user:`tnir`
- **GDR!**
.. _version-4.0.0:
4.0.0
=====
:release-date: 2016-11-04 02:00 P.M PDT
:release-by: Ask Solem
See :ref:`whatsnew-4.0` (in :file:`docs/whatsnew-4.0.rst`).
.. _version-4.0.0rc7:
4.0.0rc7
========
:release-date: 2016-11-02 01:30 P.M PDT
Important notes
---------------
- Database result backend related setting names changed from
``sqlalchemy_*`` -> ``database_*``.
The ``sqlalchemy_`` named settings won't work at all in this
version so you need to rename them. This is a last minute change,
and as they were not supported in 3.1 we will not be providing
aliases.
- ``chain(A, B, C)`` now works the same way as ``A | B | C``.
This means calling ``chain()`` might not actually return a chain,
it can return a group or any other type depending on how the
workflow can be optimized.