Changelog 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452
  1. .. _changelog:
  2. ================
  3. Change history
  4. ================
  5. This document contains change notes for bugfix releases in
  6. the 4.x series, please see :ref:`whatsnew-4.2` for
  7. an overview of what's new in Celery 4.2.
  8. 4.2.1
  9. =====
  10. :release-date: 2018-07-18 11:00 AM IST
  11. :release-by: Omer Katz
  12. - **Result Backend**: Fix deserialization of exceptions that are present in the producer codebase but not in the consumer codebase.
  13. Contributed by **John Arnold**
  14. - **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.
  15. Contributed by **Robert Kopaczewski**
  16. - **Result Backend**: Fix serialization of exception arguments when exception arguments are not JSON serializable by default.
  17. Contributed by **Tom Booth**
  18. - **Worker**: Fixed multiple issues with rate limited tasks
  19. Maintain scheduling order.
  20. 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.
  21. Fix possible duplicated execution of tasks that were rate limited or if ETA/Countdown was provided for them.
  22. Contributed by :github_user:`ideascf`
  23. - **Worker**: Defensively handle invalid timelimit header values in requests.
  24. Contributed by **Omer Katz**
  25. Documentation fixes:
  26. - **Matt Wiens**
  27. - **Seunghun Lee**
  28. - **Lewis M. Kabui**
  29. - **Prathamesh Salunkhe**
  30. 4.2.0
  31. =====
  32. :release-date: 2018-06-10 21:30 PM IST
  33. :release-by: Omer Katz
  34. - **Task**: Add ``ignore_result`` as task execution option (#4709, #3834)
  35. Contributed by **Andrii Kostenko** and **George Psarakis**.
  36. - **Redis Result Backend**: Do not create PubSub subscriptions when results are ignored (#4709, #3834)
  37. Contributed by **Andrii Kostenko** and **George Psarakis**.
  38. - **Redis Result Backend**: Result consumer always unsubscribes when task state is ready (#4666)
  39. Contributed by **George Psarakis**.
  40. - **Development/Testing**: Add docker-compose and base Dockerfile for development (#4482)
  41. Contributed by **Chris Mitchell**.
  42. - **Documentation/Sphinx**: Teach autodoc to document tasks if undoc-members is not set (#4588)
  43. Contributed by **Leo Singer**.
  44. - **Documentation/Sphinx**: Put back undoc-members option in sphinx test (#4586)
  45. Contributed by **Leo Singer**.
  46. - **Documentation/Sphinx**: Sphinx autodoc picks up tasks automatically only if `undoc-members` is set (#4584)
  47. Contributed by **Leo Singer**.
  48. - **Task**: Fix shadow_name issue when using previous version Task class (#4572)
  49. Contributed by :github_user:`pachewise`.
  50. - **Task**: Add support for bound tasks as `link_error` parameter (Fixes #3723) (#4545)
  51. Contributed by :github_user:`brabiega`.
  52. - **Deployment**: Add a command line option for setting the Result Backend URL (#4549)
  53. Contributed by :github_user:`y0ngdi`.
  54. - **CI**: Enable pip cache in appveyor build (#4546)
  55. Contributed by **Thijs Triemstra**.
  56. - **Concurrency/Asynpool**: Fix errno property name shadowing.
  57. Contributed by **Omer Katz**.
  58. - **DynamoDB Backend**: Configurable endpoint URL (#4532)
  59. Contributed by **Bohdan Rybak**.
  60. - **Timezones**: Correctly detect UTC timezone and timezone from settings (Fixes #4517) (#4519)
  61. Contributed by :github_user:`last-partizan`.
  62. - **Control**: Cleanup the mailbox's producer pool after forking (#4472)
  63. Contributed by **Nick Eaket**.
  64. - **Documentation**: Start Celery and Celery Beat on Azure WebJob (#4484)
  65. Contributed by **PauloPeres**.
  66. - **Celery Beat**: Schedule due tasks on startup, after Beat restart has occurred (#4493)
  67. Contributed by **Igor Kasianov**.
  68. - **Worker**: Use absolute time when task is accepted by worker pool (#3684)
  69. Contributed by **Régis Behmo**.
  70. - **Canvas**: Propagate arguments to chains inside groups (#4481)
  71. Contributed by **Chris Mitchell**.
  72. - **Canvas**: Fix `Task.replace` behavior in nested chords (fixes #4368) (#4369)
  73. Contributed by **Denis Shirokov** & **Alex Hill**.
  74. - **Installation**: Pass python_requires argument to setuptools (#4479)
  75. Contributed by **Jon Dufresne**.
  76. - **Message Protocol Compatibility**: Handle "hybrid" messages that have moved between Celery versions (#4358) (Issue #4356)
  77. Contributed by **Russell Keith-Magee**.
  78. - **Canvas**: request on_timeout now ignores soft time limit exception (fixes #4412) (#4473)
  79. Contributed by **Alex Garel**.
  80. - **Redis Result Backend**: Integration test to verify PubSub unsubscriptions (#4468)
  81. Contributed by **George Psarakis**.
  82. - **Message Protocol Properties**: Allow the shadow keyword argument and the shadow_name method to set shadow properly (#4381)
  83. Contributed by :github_user:`hclihn`.
  84. - **Canvas**: Run chord_unlock on same queue as chord body (#4448) (Issue #4337)
  85. Contributed by **Alex Hill**.
  86. - **Canvas**: Support chords with empty header group (#4443)
  87. Contributed by **Alex Hill**.
  88. - **Timezones**: make astimezone call in localize more safe (#4324)
  89. Contributed by **Matt Davis**.
  90. - **Canvas**: Fix length-1 and nested chords (#4437) (Issues #4393, #4055, #3885, #3597, #3574, #3323, #4301)
  91. Contributed by **Alex Hill**.
  92. - **CI**: Run `Openstack Bandit <https://pypi.org/project/bandit/1.0.1/>`_ in Travis CI in order to detect security issues.
  93. Contributed by **Omer Katz**.
  94. - **CI**: Run `isort <https://github.com/timothycrosley/isort>`_ in Travis CI in order to lint Python **import** statements.
  95. Contributed by **Omer Katz**.
  96. - **Canvas**: Resolve TypeError on `.get` from nested groups (#4432) (Issue #4274)
  97. Contributed by **Misha Wolfson**.
  98. - **CouchDB Backend**: Correct CouchDB key string type for Python 2/3 compatibility (#4166)
  99. Contributed by :github_user:`fmind` && **Omer Katz**.
  100. - **Group Result**: Fix current_app fallback in GroupResult.restore() (#4431)
  101. Contributed by **Alex Hill**.
  102. - **Consul Backend**: Correct key string type for Python 2/3 compatibility (#4416)
  103. Contributed by **Wido den Hollander**.
  104. - **Group Result**: Correctly restore an empty GroupResult (#2202) (#4427)
  105. Contributed by **Alex Hill** & **Omer Katz**.
  106. - **Result**: Disable synchronous waiting for sub-tasks on eager mode(#4322)
  107. Contributed by **Denis Podlesniy**.
  108. - **Celery Beat**: Detect timezone or Daylight Saving Time changes (#1604) (#4403)
  109. Contributed by **Vincent Barbaresi**.
  110. - **Canvas**: Fix append to an empty chain. Fixes #4047. (#4402)
  111. Contributed by **Omer Katz**.
  112. - **Task**: Allow shadow to override task name in trace and logging messages. (#4379)
  113. Contributed by :github_user:`hclihn`.
  114. - **Documentation/Sphinx**: Fix getfullargspec Python 2.x compatibility in contrib/sphinx.py (#4399)
  115. Contributed by **Javier Martin Montull**.
  116. - **Documentation**: Updated installation instructions for SQS broker (#4382)
  117. Contributed by **Sergio Fernandez**.
  118. - **Celery Beat**: Better equality comparison for ScheduleEntry instances (#4312)
  119. Contributed by :github_user:`mariia-zelenova`.
  120. - **Task**: Adding 'shadow' property to as_task_v2 (#4350)
  121. Contributed by **Marcelo Da Cruz Pinto**.
  122. - Try to import directly, do not use deprecated imp method (#4216)
  123. Contributed by **Tobias Kunze**.
  124. - **Task**: Enable `kwargsrepr` and `argsrepr` override for modifying task argument representation (#4260)
  125. Contributed by **James M. Allen**.
  126. - **Result Backend**: Add Redis Sentinel backend (#4144)
  127. Contributed by **Geoffrey Bauduin**.
  128. - Use unique time values for Collections/LimitedSet (#3879 and #3891) (#3892)
  129. Contributed by :github_user:`lead2gold`.
  130. - **CI**: Report coverage for all result backends.
  131. Contributed by **Omer Katz**.
  132. - **Django**: Use Django DB max age connection setting (fixes #4116) (#4292)
  133. Contributed by **Marco Schweighauser**.
  134. - **Canvas**: Properly take into account chain tasks link_error (#4240)
  135. Contributed by :github_user:`agladkov`.
  136. - **Canvas**: Allow to create group with single task (fixes issue #4255) (#4280)
  137. Contributed by :github_user:`agladkov`.
  138. - **Canvas**: Copy dictionary parameter in chord.from_dict before modifying (fixes issue #4223) (#4278)
  139. Contributed by :github_user:`agladkov`.
  140. - **Results Backend**: Add Cassandra options (#4224)
  141. Contributed by **Scott Cooper**.
  142. - **Worker**: Apply rate limiting for tasks with ETA (#4251)
  143. Contributed by :github_user:`arpanshah29`.
  144. - **Celery Beat**: support scheduler entries without a schedule (#4235)
  145. Contributed by **Markus Kaiserswerth**.
  146. - **SQS Broker**: Updated SQS requirements file with correct boto3 version (#4231)
  147. Contributed by **Alejandro Varas**.
  148. - Remove unused code from _create_app contextmanager (#4204)
  149. Contributed by **Ryan P Kilby**.
  150. - **Group Result**: Modify GroupResult.as_tuple() to include parent (fixes #4106) (#4205)
  151. Contributed by :github_user:`pachewise`.
  152. - **Beat**: Set default scheduler class in beat command. (#4189)
  153. Contributed by :github_user:`Kxrr`.
  154. - **Worker**: Retry signal receiver after raised exception (#4192)
  155. Contributed by **David Davis**.
  156. - **Task**: Allow custom Request class for tasks (#3977)
  157. Contributed by **Manuel Vázquez Acosta**.
  158. - **Django**: Django fixup should close all cache backends (#4187)
  159. Contributed by **Raphaël Riel**.
  160. - **Deployment**: Adds stopasgroup to the supervisor scripts (#4200)
  161. Contributed by :github_user:`martialp`.
  162. - Using Exception.args to serialize/deserialize exceptions (#4085)
  163. Contributed by **Alexander Ovechkin**.
  164. - **Timezones**: Correct calculation of application current time with timezone (#4173)
  165. Contributed by **George Psarakis**.
  166. - **Remote Debugger**: Set the SO_REUSEADDR option on the socket (#3969)
  167. Contributed by **Theodore Dubois**.
  168. - **Django**: Celery ignores exceptions raised during `django.setup()` (#4146)
  169. Contributed by **Kevin Gu**.
  170. - Use heartbeat setting from application configuration for Broker connection (#4148)
  171. Contributed by :github_user:`mperice`.
  172. - **Celery Beat**: Fixed exception caused by next_transit receiving an unexpected argument. (#4103)
  173. Contributed by **DDevine**.
  174. - **Task** Introduce exponential backoff with Task auto-retry (#4101)
  175. Contributed by **David Baumgold**.
  176. - **AsyncResult**: Remove weak-references to bound methods in AsyncResult promises. (#4131)
  177. Contributed by **Vinod Chandru**.
  178. - **Development/Testing**: Allow eager application of canvas structures (#4576)
  179. Contributed by **Nicholas Pilon**.
  180. - **Command Line**: Flush stderr before exiting with error code 1.
  181. Contributed by **Antonin Delpeuch**.
  182. - **Task**: Escapes single quotes in kwargsrepr strings.
  183. Contributed by **Kareem Zidane**
  184. - **AsyncResult**: Restore ability to join over ResultSet after fixing celery/#3818.
  185. Contributed by **Derek Harland**
  186. - **Redis Results Backend**: Unsubscribe on message success.
  187. Previously Celery would leak channels, filling the memory of the Redis instance.
  188. Contributed by **George Psarakis**
  189. - **Task**: Only convert eta to isoformat when it is not already a string.
  190. Contributed by **Omer Katz**
  191. - **Redis Results Backend**: The result_backend setting now supports rediss:// URIs
  192. Contributed by **James Remeika**
  193. - **Canvas** Keyword arguments are passed to tasks in chain as expected.
  194. Contributed by :github_user:`tothegump`
  195. - **Django** Fix a regression casuing Celery to crash when using Django.
  196. Contributed by **Jonas Haag**
  197. - **Canvas** Chain with one task now runs as expected.
  198. Contributed by :github_user:`tothegump`
  199. - **Kombu** Celery 4.2 now requires Kombu 4.2 or better.
  200. Contributed by **Omer Katz & Asif Saifuddin Auvi**
  201. - `GreenletExit` is not in `__all__` in greenlet.py which can not be imported by Python 3.6.
  202. The import was adjusted to work on Python 3.6 as well.
  203. Contributed by **Hsiaoming Yang**
  204. - Fixed a regression that occured during the development of Celery 4.2 which caused `celery report` to crash when Django is installed.
  205. Contributed by **Josue Balandrano Coronel**
  206. - Matched the behavior of `GroupResult.as_tuple()` to that of `AsyncResult.as_tuple()`.
  207. The group's parent is now serialized correctly.
  208. Contributed by **Josue Balandrano Coronel**
  209. - Use Redis coercion mechanism for converting URI query parameters.
  210. Contributed by **Justin Patrin**
  211. - Fixed the representation of `GroupResult`.
  212. The dependency graph is now presented correctly.
  213. Contributed by **Josue Balandrano Coronel**
  214. Documentation, CI, Installation and Tests fixes:
  215. - **Sammie S. Taunton**
  216. - **Dan Wilson**
  217. - :github_user:`pachewise`
  218. - **Sergi Almacellas Abellana**
  219. - **Omer Katz**
  220. - **Alex Zaitsev**
  221. - **Leo Singer**
  222. - **Rachel Johnson**
  223. - **Jon Dufresne**
  224. - **Samuel Dion-Girardeau**
  225. - **Ryan Guest**
  226. - **Huang Huang**
  227. - **Geoffrey Bauduin**
  228. - **Andrew Wong**
  229. - **Mads Jensen**
  230. - **Jackie Leng**
  231. - **Harry Moreno**
  232. - :github_user:`michael-k`
  233. - **Nicolas Mota**
  234. - **Armenak Baburyan**
  235. - **Patrick Zhang**
  236. - :github_user:`anentropic`
  237. - :github_user:`jairojair`
  238. - **Ben Welsh**
  239. - **Michael Peake**
  240. - **Fengyuan Chen**
  241. - :github_user:`arpanshah29`
  242. - **Xavier Hardy**
  243. - **Shitikanth**
  244. - **Igor Kasianov**
  245. - **John Arnold**
  246. - :github_user:`dmollerm`
  247. - **Robert Knight**
  248. - **Asif Saifuddin Auvi**
  249. - **Eduardo Ramírez**
  250. - **Kamil Breguła**
  251. - **Juan Gutierrez**