Changelog 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. .. _changelog:
  2. ================
  3. Change history
  4. ================
  5. This document contains change notes for bugfix releases in
  6. the 4.0.x series (latentcall), please see :ref:`whatsnew-4.0` for
  7. an overview of what's new in Celery 4.0.
  8. .. _version-4.0.3:
  9. 4.0.3
  10. =====
  11. :release-date: 2017-??-?? ??:?? PM PST
  12. :release-by: Ask Solem
  13. - **Requirements**
  14. - Now depends on :ref:`Kombu 4.0.3 <kombu:version-4.0.3>`.
  15. - **Results**: Elasticsearch now reuses fields when new results are added.
  16. Contributed by **Mike Chen**.
  17. - **Results**: Fixed MongoDB integration when using binary encodings
  18. (Issue #3575).
  19. Contributed by **Andrew de Quincey**.
  20. - **Worker**: Making missing ``*args`` and ``**kwargs`` in Task protocol 1
  21. return empty value in protocol 2 (Issue #3687).
  22. Contributed by **Roman Sichny**.
  23. - **App**: Fixed :exc:`TypeError` in AMQP when using deprecated signal
  24. (Issue #3707).
  25. Contributed by :github_user:`michael-k`.
  26. - **Beat**: Added a transparent method to update the scheduler heap.
  27. Contributed by **Alejandro Pernin**.
  28. - **Task**: Fixed handling of tasks with keyword arguments on Python 3
  29. (Issue #3657).
  30. Contributed by **Roman Sichny**.
  31. - **Task**: Fixed request context for blocking task apply by adding missing
  32. hostname attribute.
  33. Contributed by **Marat Sharafutdinov**.
  34. - **Task**: Added option to run subtasks synchronously with
  35. ``disable_sync_subtasks`` argument.
  36. Contributed by :github_user:`shalev67`.
  37. - **App**: Fixed chaining of replaced tasks (Issue #3726).
  38. Contributed by **Morgan Doocy**.
  39. - **Canvas**: Fixed bug where replaced tasks with groups were not completing
  40. (Issue #3725).
  41. Contributed by **Morgan Doocy**.
  42. - **Worker**: Fixed problem where consumer does not shutdown properly when
  43. embedded in a gevent application (Issue #3745).
  44. Contributed by **Arcadiy Ivanov**.
  45. - **Results**: Added support for using AWS DynamoDB as a result backend.
  46. Contributed by **George Psarakis**.
  47. - **Testing**: Added caching on pip installs.
  48. Contributed by :github_user:`orf`.
  49. - **Worker**: Prevent consuming queue before ready on startup (Issue #3620).
  50. Contributed by **Alan Hamlett**.
  51. - **App**: Fixed task ETA issues when timezone is defined in configuration
  52. (Issue #3753).
  53. Contributed by **George Psarakis**.
  54. - **Utils**: ``maybe_make_aware`` should not modify datetime when it is
  55. already timezone-aware (Issue #3849).
  56. Contributed by **Taylor C. Richberger**.
  57. - **App**: Fixed retrying tasks with expirations (Issue #3734).
  58. Contributed by **Brendan MacDonell**.
  59. - **Results**: Allow unicode message for exceptions raised in task
  60. (Issue #3858).
  61. Contributed by :github_user:`staticfox`.
  62. - **Canvas**: Fixed :exc:`IndexError` raised when chord has an empty header.
  63. Contributed by **Marc Gibbons**.
  64. - **Canvas**: Avoid duplicating chains in chords (Issue #3771).
  65. Contributed by **Ryan Hiebert** and **George Psarakis**.
  66. - **Utils**: Allow class methods to define tasks (Issue #3863).
  67. Contributed by **George Psarakis**.
  68. - **Beat**: Populate heap when periodic tasks are changed.
  69. Contributed by :github_user:`wzywno` and **Brian May**.
  70. - **Results**: Added support for Elasticsearch backend options settings.
  71. Contributed by :github_user:`Acey9`.
  72. - **Events**: Ensure ``Task.as_dict()`` works when not all information about
  73. task is available.
  74. Contributed by :github_user:`tramora`.
  75. - **Schedules**: Fixed pickled crontab schedules to restore properly (Issue #3826).
  76. Contributed by **Taylor C. Richberger**.
  77. - **Results**: Added SSL option for redis backends (Issue #3830).
  78. Contributed by **Chris Kuehl**.
  79. - Documentation and examples improvements by:
  80. - **Bruno Alla**
  81. - **Jamie Alessio**
  82. - **Peter Bittner**
  83. - **Jon Dufresne**
  84. - **Sergey Fursov**
  85. - **Daniel Hahler**
  86. - **Mike Helmick**
  87. - **Marc Hörsken**
  88. - **Christopher Hoskin**
  89. - **Michal Kuffa**
  90. - **Simon Legner**
  91. - **Ed Morley**
  92. - **Dmytro Petruk**
  93. - **Salvatore Rinchiera**
  94. - **Arnaud Rocher**
  95. - **YuLun Shih**
  96. - **Tom 'Biwaa' Riat**
  97. - **Arthur Vigil**
  98. - **Joey Wilhelm**
  99. - **Jian Yu**
  100. - :github_user:`baixuexue123`
  101. - :github_user:`bronsen`
  102. - :github_user:`michael-k`
  103. - :github_user:`orf`
  104. - :github_user:`3lnc`
  105. .. _version-4.0.3:
  106. 4.0.2
  107. =====
  108. :release-date: 2016-12-15 03:40 PM PST
  109. :release-by: Ask Solem
  110. - **Requirements**
  111. - Now depends on :ref:`Kombu 4.0.2 <kombu:version-4.0.2>`.
  112. - **Tasks**: Fixed problem with JSON serialization of `group`
  113. (``keys must be string`` error, Issue #3688).
  114. - **Worker**: Fixed JSON serialization issue when using ``inspect active``
  115. and friends (Issue #3667).
  116. - **App**: Fixed saferef errors when using signals (Issue #3670).
  117. - **Prefork**: Fixed bug with pack requiring bytes argument
  118. on Python 2.7.5 and earlier (Issue #3674).
  119. - **Tasks**: Saferepr did not handle unicode in bytestrings on Python 2
  120. (Issue #3676).
  121. - **Testing**: Added new ``celery_worker_paremeters`` fixture.
  122. Contributed by **Michael Howitz**.
  123. - **Tasks**: Added new ``app`` argument to ``GroupResult.restore``
  124. (Issue #3669).
  125. This makes the restore method behave the same way as the ``GroupResult``
  126. constructor.
  127. Contributed by **Andreas Pelme**.
  128. - **Tasks**: Fixed type checking crash when task takes ``*args`` on Python 3
  129. (Issue #3678).
  130. - Documentation and examples improvements by:
  131. - **BLAGA Razvan-Paul**
  132. - **Michael Howitz**
  133. - :github_user:`paradox41`
  134. .. _version-4.0.1:
  135. 4.0.1
  136. =====
  137. :release-date: 2016-12-08 05:22 PM PST
  138. :release-by: Ask Solem
  139. * [Security: `CELERYSA-0003`_] Insecure default configuration
  140. The default :setting:`accept_content` setting was set to allow
  141. deserialization of pickled messages in Celery 4.0.0.
  142. The insecure default has been fixed in 4.0.1, and you can also
  143. configure the 4.0.0 version to explicitly only allow json serialized
  144. messages:
  145. .. code-block:: python
  146. app.conf.accept_content = ['json']
  147. .. _`CELERYSA-0003`:
  148. https://github.com/celery/celery/tree/master/docs/sec/CELERYSA-0003.txt
  149. - **Tasks**: Added new method to register class-based tasks (Issue #3615).
  150. To register a class based task you should now call ``app.register_task``:
  151. .. code-block:: python
  152. from celery import Celery, Task
  153. app = Celery()
  154. class CustomTask(Task):
  155. def run(self):
  156. return 'hello'
  157. app.register_task(CustomTask())
  158. - **Tasks**: Argument checking now supports keyword-only arguments on Python3
  159. (Issue #3658).
  160. Contributed by :github_user:`sww`.
  161. - **Tasks**: The ``task-sent`` event was not being sent even if
  162. configured to do so (Issue #3646).
  163. - **Worker**: Fixed AMQP heartbeat support for eventlet/gevent pools
  164. (Issue #3649).
  165. - **App**: ``app.conf.humanize()`` would not work if configuration
  166. not finalized (Issue #3652).
  167. - **Utils**: ``saferepr`` attempted to show iterables as lists
  168. and mappings as dicts.
  169. - **Utils**: ``saferepr`` did not handle unicode-errors
  170. when attempting to format ``bytes`` on Python 3 (Issue #3610).
  171. - **Utils**: ``saferepr`` should now properly represent byte strings
  172. with non-ascii characters (Issue #3600).
  173. - **Results**: Fixed bug in elasticsearch where _index method missed
  174. the body argument (Issue #3606).
  175. Fix contributed by **何翔宇** (Sean Ho).
  176. - **Canvas**: Fixed :exc:`ValueError` in chord with single task header
  177. (Issue #3608).
  178. Fix contributed by **Viktor Holmqvist**.
  179. - **Task**: Ensure class-based task has name prior to registration
  180. (Issue #3616).
  181. Fix contributed by **Rick Wargo**.
  182. - **Beat**: Fixed problem with strings in shelve (Issue #3644).
  183. Fix contributed by **Alli**.
  184. - **Worker**: Fixed :exc:`KeyError` in ``inspect stats`` when ``-O`` argument
  185. set to something other than ``fast`` or ``fair`` (Issue #3621).
  186. - **Task**: Retried tasks were no longer sent to the original queue
  187. (Issue #3622).
  188. - **Worker**: Python 3: Fixed None/int type comparison in
  189. :file:`apps/worker.py` (Issue #3631).
  190. - **Results**: Redis has a new :setting:`redis_socket_connect_timeout`
  191. setting.
  192. - **Results**: Redis result backend passed the ``socket_connect_timeout``
  193. argument to UNIX socket based connections by mistake, causing a crash.
  194. - **Worker**: Fixed missing logo in worker splash screen when running on
  195. Python 3.x (Issue #3627).
  196. Fix contributed by **Brian Luan**.
  197. - **Deps**: Fixed ``celery[redis]`` bundle installation (Issue #3643).
  198. Fix contributed by **Rémi Marenco**.
  199. - **Deps**: Bundle ``celery[sqs]`` now also requires :pypi:`pycurl`
  200. (Issue #3619).
  201. - **Worker**: Hard time limits were no longer being respected (Issue #3618).
  202. - **Worker**: Soft time limit log showed ``Trues`` instead of the number
  203. of seconds.
  204. - **App**: ``registry_cls`` argument no longer had any effect (Issue #3613).
  205. - **Worker**: Event producer now uses ``connection_for_Write`` (Issue #3525).
  206. - **Results**: Redis/memcache backends now uses :setting:`result_expires`
  207. to expire chord counter (Issue #3573).
  208. Contributed by **Tayfun Sen**.
  209. - **Django**: Fixed command for upgrading settings with Django (Issue #3563).
  210. Fix contributed by **François Voron**.
  211. - **Testing**: Added a ``celery_parameters`` test fixture to be able to use
  212. customized ``Celery`` init parameters. (#3626)
  213. Contributed by **Steffen Allner**.
  214. - Documentation improvements contributed by
  215. - :github_user:`csfeathers`
  216. - **Moussa Taifi**
  217. - **Yuhannaa**
  218. - **Laurent Peuch**
  219. - **Christian**
  220. - **Bruno Alla**
  221. - **Steven Johns**
  222. - :github_user:`tnir`
  223. - **GDR!**
  224. .. _version-4.0.0:
  225. 4.0.0
  226. =====
  227. :release-date: 2016-11-04 02:00 P.M PDT
  228. :release-by: Ask Solem
  229. See :ref:`whatsnew-4.0` (in :file:`docs/whatsnew-4.0.rst`).
  230. .. _version-4.0.0rc7:
  231. 4.0.0rc7
  232. ========
  233. :release-date: 2016-11-02 01:30 P.M PDT
  234. Important notes
  235. ---------------
  236. - Database result backend related setting names changed from
  237. ``sqlalchemy_*`` -> ``database_*``.
  238. The ``sqlalchemy_`` named settings won't work at all in this
  239. version so you need to rename them. This is a last minute change,
  240. and as they were not supported in 3.1 we will not be providing
  241. aliases.
  242. - ``chain(A, B, C)`` now works the same way as ``A | B | C``.
  243. This means calling ``chain()`` might not actually return a chain,
  244. it can return a group or any other type depending on how the
  245. workflow can be optimized.