Browse Source

Changelog for 4.2.0 (#4595)

George Psarakis 7 years ago
parent
commit
9ac3e373ae
3 changed files with 502 additions and 192 deletions
  1. 175 192
      Changelog
  2. 326 0
      docs/history/changelog-4.1.rst
  3. 1 0
      docs/history/index.rst

+ 175 - 192
Changelog

@@ -5,334 +5,317 @@
 ================
 
 This document contains change notes for bugfix releases in
-the 4.1.x series (latentcall), please see :ref:`whatsnew-4.1` for
-an overview of what's new in Celery 4.1.
+the 4.x series, please see :ref:`whatsnew-4.2` for
+an overview of what's new in Celery 4.2.
 
-Unreleased
-==========
+4.2.0
+=====
 
-- **Canvas**: request on_timeout now ignores soft time limit exception
-  to give a chance for task to recover.
+- **Documentation/Sphinx**: Teach autodoc to document tasks if undoc-members is not set (#4588)
 
-  Contributed by **Alex Garel**
+    Contributed by **Leo Singer**.
 
+- **Documentation/Sphinx**: Put back undoc-members option in sphinx test (#4586)
 
-.. _version-4.1.0:
+    Contributed by **Leo Singer**.
 
-4.1.0
-=====
-:release-date: 2017-07-25 00:00 PM PST
-:release-by: Omer Katz
+- **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)
 
-- **Configuration**: CELERY_SEND_EVENTS instead of CELERYD_SEND_EVENTS for 3.1.x compatibility (#3997)
+    Contributed by :github_user:`pachewise`.
 
- Contributed by **abhinav nilaratna**.
+- **Task**: Add support for bound tasks as `link_error` parameter (Fixes #3723) (#4545)
 
-- **App**: Restore behavior so Broadcast queues work. (#3934)
+    Contributed by :github_user:`brabiega`.
 
- Contributed by **Patrick Cloke**.
+- **Deployment**: Add a command line option for setting the Result Backend URL (#4549)
 
-- **Sphinx**: Make appstr use standard format (#4134) (#4139)
+    Contributed by :github_user:`y0ngdi`.
 
- Contributed by **Preston Moore**.
+- **CI**: Enable pip cache in appveyor build (#4546)
 
-- **App**: Make id, name always accessible from logging.Formatter via extra (#3994)
+    Contributed by **Thijs Triemstra**.
 
- Contributed by **Yoichi NAKAYAMA**.
+- **Concurrency/Asynpool**: Fix errno property name shadowing.
 
-- **Worker**: Add worker_shutting_down signal (#3998)
+    Contributed by **Omer Katz**.
 
- Contributed by **Daniel Huang**.
+- **DynamoDB Backend**: Configurable endpoint URL (#4532)
 
-- **PyPy**: Support PyPy version 5.8.0 (#4128)
+    Contributed by **Bohdan Rybak**.
 
- Contributed by **Omer Katz**.
+- **Timezones**: Correctly detect UTC timezone and timezone from settings (Fixes #4517) (#4519)
 
-- **Results**: Elasticsearch: Fix serializing keys (#3924)
+    Contributed by :github_user:`last-partizan`.
 
- Contributed by :github_user:`staticfox`.
+- **Control**: Cleanup the mailbox's producer pool after forking (#4472)
 
-- **Canvas**: Deserialize all tasks in a chain (#4015)
+    Contributed by **Nick Eaket**.
 
- Contributed by :github_user:`fcoelho`.
+- **Documentation**: Start Celery and Celery Beat on Azure WebJob (#4484)
 
-- **Systemd**: Recover loglevel for ExecStart in systemd config (#4023)
+    Contributed by **PauloPeres**.
 
- Contributed by **Yoichi NAKAYAMA**.
+- **Celery Beat**: Schedule due tasks on startup, after Beat restart has occurred (#4493)
 
-- **Sphinx**: Use the Sphinx add_directive_to_domain API. (#4037)
+    Contributed by **Igor Kasianov**.
 
- Contributed by **Patrick Cloke**.
+- **Worker**: Use absolute time when task is accepted by worker pool (#3684)
 
-- **App**: Pass properties to before_task_publish signal (#4035)
+    Contributed by **Régis Behmo**.
 
- Contributed by **Javier Domingo Cansino**.
+- **Canvas**: Propagate arguments to chains inside groups (#4481)
 
-- **Results**: Add SSL option for Redis backends (#3831)
+    Contributed by **Chris Mitchell**.
 
- Contributed by **Chris Kuehl**.
+- **Canvas**: Fix `Task.replace` behavior in nested chords (fixes #4368) (#4369)
 
-- **Beat**: celery.schedule.crontab: fix reduce (#3826) (#3827)
+    Contributed by **Denis Shirokov** & **Alex Hill**.
 
- Contributed by **Taylor C. Richberger**.
+- **Installation**: Pass python_requires argument to setuptools (#4479)
 
-- **State**: Fix celery issues when using flower REST API
+    Contributed by **Jon Dufresne**.
 
- Contributed by **Thierry RAMORASOAVINA**.
+- **Message Protocol Compatibility**: Handle "hybrid" messages that have moved between Celery versions (#4358) (Issue #4356)
 
-- **Results**: Elasticsearch: Fix serializing document id.
+    Contributed by **Russell Keith-Magee**.
 
- Contributed by **Acey9**.
+- **Canvas**: request on_timeout now ignores soft time limit exception (fixes #4412) (#4473)
 
-- **Beat**: Make shallow copy of schedules dictionary
+    Contributed by **Alex Garel**.
 
- Contributed by **Brian May**.
+- **Redis Result Backend**: Integration test to verify PubSub unsubscriptions (#4468)
 
-- **Beat**: Populate heap when periodic tasks are changed
+    Contributed by **George Psarakis**.
 
- Contributed by **Wojciech Żywno**.
+- **Message Protocol Properties**: Allow the shadow keyword argument and the shadow_name method to set shadow properly (#4381)
 
-- **Task**: Allow class methods to define tasks (#3952)
+    Contributed by :github_user:`hclihn`.
 
- Contributed by **georgepsarakis**.
+- **Canvas**: Run chord_unlock on same queue as chord body (#4448) (Issue #4337)
 
-- **Platforms**: Always return boolean value when checking if signal is supported (#3962).
+    Contributed by **Alex Hill**.
 
- Contributed by **Jian Yu**.
+- **Canvas**: Support chords with empty header group (#4443)
 
-- **Canvas**: Avoid duplicating chains in chords (#3779)
+    Contributed by **Alex Hill**.
 
- Contributed by **Ryan Hiebert**.
+- **Timezones**: make astimezone call in localize more safe (#4324)
 
-- **Canvas**: Lookup task only if list has items (#3847)
+    Contributed by **Matt Davis**.
 
- Contributed by **Marc Gibbons**.
+- **Canvas**: Fix length-1 and nested chords (#4437) (Issues #4393, #4055, #3885, #3597, #3574, #3323, #4301)
 
-- **Results**: Allow unicode message for exception raised in task (#3903)
+    Contributed by **Alex Hill**.
 
- Contributed by **George Psarakis**.
+- **CI**: Run `Openstack Bandit<https://pypi.python.org/pypi/bandit/1.0.1>`_ in Travis CI in order to detect security issues.
 
-- **Python3**: Support for Python 3.6 (#3904, #3903, #3736)
+    Contributed by **Omer Katz**.
 
- Contributed by **Jon Dufresne**, **George Psarakis**, **Asif Saifuddin Auvi**, **Omer Katz**.
+- **CI**: Run `isort<https://github.com/timothycrosley/isort>`_ in Travis CI in order to lint Python **import** statements.
 
-- **App**: Fix retried tasks with expirations (#3790)
+    Contributed by **Omer Katz**.
 
- Contributed by **Brendan MacDonell**.
+- **Canvas**: Resolve TypeError on `.get` from nested groups (#4432) (Issue #4274)
 
-- * Fixes items format route in docs (#3875)
+    Contributed by **Misha Wolfson**.
 
- Contributed by **Slam**.
+- **CouchDB Backend**: Correct CouchDB key string type for Python 2/3 compatibility (#4166)
 
-- **Utils**: Fix maybe_make_aware (#3850)
+    Contributed by :github_user:`fmind` && **Omer Katz**.
 
- Contributed by **Taylor C. Richberger**.
+- **Group Result**: Fix current_app fallback in GroupResult.restore() (#4431)
 
-- **Task**: Fix task ETA issues when timezone is defined in configuration (#3867)
+    Contributed by **Alex Hill**.
 
- Contributed by **George Psarakis**.
+- **Consul Backend**: Correct key string type for Python 2/3 compatibility (#4416)
 
-- **Concurrency**: Consumer does not shutdown properly when embedded in gevent application (#3746)
+    Contributed by **Wido den Hollander**.
 
- Contributed by **Arcadiy Ivanov**.
+- **Group Result**: Correctly restore an empty GroupResult (#2202) (#4427)
 
-- **Canvas**: Fix #3725: Task replaced with group does not complete (#3731)
+    Contributed by **Alex Hill** & **Omer Katz**.
 
- Contributed by **Morgan Doocy**.
+- **Result**: Disable synchronous waiting for sub-tasks on eager mode(#4322)
 
-- **Task**: Correct order in chains with replaced tasks (#3730)
+    Contributed by **Denis Podlesniy**.
 
- Contributed by **Morgan Doocy**.
+- **Celery Beat**: Detect timezone or Daylight Saving Time changes (#1604) (#4403)
 
-- **Result**: Enable synchronous execution of sub-tasks (#3696)
+    Contributed by **Vincent Barbaresi**.
 
- Contributed by **shalev67**.
+- **Canvas**: Fix append to an empty chain. Fixes #4047. (#4402)
 
-- **Task**: Fix request context for blocking task apply (added hostname) (#3716)
+    Contributed by **Omer Katz**.
 
- Contributed by **Marat Sharafutdinov**.
+- **Task**: Allow shadow to override task name in trace and logging messages. (#4379)
 
-- **Utils**: Fix task argument handling (#3678) (#3693)
+    Contributed by :github_user:`hclihn`.
 
- Contributed by **Roman Sichny**.
+- **Documentation/Sphinx**: Fix getfullargspec Python 2.x compatibility in contrib/sphinx.py (#4399)
 
-- **Beat**: Provide a transparent method to update the Scheduler heap (#3721)
+    Contributed by **Javier Martin Montull**.
 
- Contributed by **Alejandro Pernin**.
+- **Documentation**: Updated installation instructions for SQS broker (#4382)
 
-- **Beat**: Specify default value for pidfile option of celery beat. (#3722)
+    Contributed by **Sergio Fernandez**.
 
- Contributed by **Arnaud Rocher**.
+- **Celery Beat**: Better equality comparison for ScheduleEntry instances (#4312)
 
-- **Results**: Elasticsearch: Stop generating a new field every time when a new result is being put (#3708)
+    Contributed by :github_user:`mariia-zelenova`.
 
- Contributed by **Mike Chen**.
+- **Task**: Adding 'shadow' property to as_task_v2 (#4350)
 
-- **Requirements**
+    Contributed by **Marcelo Da Cruz Pinto**.
 
-    - Now depends on :ref:`Kombu 4.1.0 <kombu:version-4.1.0>`.
+- Try to import directly, do not use deprecated imp method (#4216)
 
-- **Results**: Elasticsearch now reuses fields when new results are added.
+    Contributed by **Tobias Kunze**.
 
-    Contributed by **Mike Chen**.
+- **Task**: Enable `kwargsrepr` and `argsrepr` override for modifying task argument representation (#4260)
 
-- **Results**: Fixed MongoDB integration when using binary encodings
-  (Issue #3575).
+    Contributed by **James M. Allen**.
 
-    Contributed by **Andrew de Quincey**.
+- **Result Backend**: Add Redis Sentinel backend (#4144)
 
-- **Worker**: Making missing ``*args`` and ``**kwargs`` in Task protocol 1
-  return empty value in protocol 2 (Issue #3687).
+    Contributed by **Geoffrey Bauduin**.
 
-    Contributed by **Roman Sichny**.
+- Use unique time values for Collections/LimitedSet (#3879 and #3891) (#3892)
 
-- **App**: Fixed :exc:`TypeError` in AMQP when using deprecated signal
-  (Issue #3707).
+    Contributed by :github_user:`lead2gold`.
 
-    Contributed by :github_user:`michael-k`.
+- **CI**: Report coverage for all result backends.
 
-- **Beat**: Added a transparent method to update the scheduler heap.
+    Contributed by **Omer Katz**.
 
-    Contributed by **Alejandro Pernin**.
+- **Django**: Use Django DB max age connection setting (fixes #4116) (#4292)
 
-- **Task**: Fixed handling of tasks with keyword arguments on Python 3
-  (Issue #3657).
+    Contributed by **Marco Schweighauser**.
 
-    Contributed by **Roman Sichny**.
+- **Canvas**: Properly take into account chain tasks link_error (#4240)
 
-- **Task**: Fixed request context for blocking task apply by adding missing
-  hostname attribute.
+    Contributed by :github_user:`agladkov`.
 
-    Contributed by **Marat Sharafutdinov**.
+- **Canvas**: Allow to create group with single task (fixes issue #4255) (#4280)
 
-- **Task**: Added option to run subtasks synchronously with
-  ``disable_sync_subtasks`` argument.
+    Contributed by :github_user:`agladkov`.
 
-    Contributed by :github_user:`shalev67`.
+- **Canvas**: Copy dictionary parameter in chord.from_dict before modifying (fixes issue #4223) (#4278)
 
-- **App**: Fixed chaining of replaced tasks (Issue #3726).
+    Contributed by :github_user:`agladkov`.
 
-    Contributed by **Morgan Doocy**.
+- **Results Backend**: Add Cassandra options (#4224)
 
-- **Canvas**: Fixed bug where replaced tasks with groups were not completing
-  (Issue #3725).
+    Contributed by **Scott Cooper**.
 
-    Contributed by **Morgan Doocy**.
+- **Worker**: Apply rate limiting for tasks with ETA (#4251)
 
-- **Worker**: Fixed problem where consumer does not shutdown properly when
-  embedded in a gevent application (Issue #3745).
+    Contributed by :github_user:`arpanshah29`.
 
-    Contributed by **Arcadiy Ivanov**.
+- **Celery Beat**: support scheduler entries without a schedule (#4235)
 
-- **Results**: Added support for using AWS DynamoDB as a result backend (#3736).
+    Contributed by **Markus Kaiserswerth**.
 
-    Contributed by **George Psarakis**.
+- **SQS Broker**: Updated SQS requirements file with correct boto3 version (#4231)
 
-- **Testing**: Added caching on pip installs.
+    Contributed by **Alejandro Varas**.
 
-    Contributed by :github_user:`orf`.
+- Remove unused code from _create_app contextmanager (#4204)
 
-- **Worker**: Prevent consuming queue before ready on startup (Issue #3620).
+    Contributed by **Ryan P Kilby**.
 
-    Contributed by **Alan Hamlett**.
+- **Group Result**: Modify GroupResult.as_tuple() to include parent (fixes #4106) (#4205)
 
-- **App**: Fixed task ETA issues when timezone is defined in configuration
-  (Issue #3753).
+    Contributed by :github_user:`pachewise`.
 
-    Contributed by **George Psarakis**.
+- **Beat**: Set default scheduler class in beat command. (#4189)
 
-- **Utils**: ``maybe_make_aware`` should not modify datetime when it is
-  already timezone-aware (Issue #3849).
+    Contributed by :github_user:`Kxrr`.
 
-    Contributed by **Taylor C. Richberger**.
+- **Worker**: Retry signal receiver after raised exception (#4192)
 
-- **App**: Fixed retrying tasks with expirations (Issue #3734).
+    Contributed by **David Davis**.
 
-    Contributed by **Brendan MacDonell**.
+- **Task**: Allow custom Request class for tasks (#3977)
 
-- **Results**: Allow unicode message for exceptions raised in task
-  (Issue #3858).
+    Contributed by **Manuel Vázquez Acosta**.
 
-    Contributed by :github_user:`staticfox`.
+- **Django**: Django fixup should close all cache backends (#4187)
 
-- **Canvas**: Fixed :exc:`IndexError` raised when chord has an empty header.
+    Contributed by **Raphaël Riel**.
 
-    Contributed by **Marc Gibbons**.
+- **Deployment**: Adds stopasgroup to the supervisor scripts (#4200)
 
-- **Canvas**: Avoid duplicating chains in chords (Issue #3771).
+    Contributed by :github_user:`martialp`.
 
-    Contributed by **Ryan Hiebert** and **George Psarakis**.
+- Using Exception.args to serialize/deserialize exceptions (#4085)
 
-- **Utils**: Allow class methods to define tasks (Issue #3863).
+    Contributed by **Alexander Ovechkin**.
+
+- **Timezones**: Correct calculation of application current time with timezone (#4173)
 
     Contributed by **George Psarakis**.
 
-- **Beat**: Populate heap when periodic tasks are changed.
+- **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 :github_user:`wzywno` and **Brian May**.
+    Contributed by **Kevin Gu**.
 
-- **Results**: Added support for Elasticsearch backend options settings.
+- Use heartbeat setting from application configuration for Broker connection (#4148)
 
-    Contributed by :github_user:`Acey9`.
+    Contributed by :github_user:`mperice`.
 
-- **Events**: Ensure ``Task.as_dict()`` works when not all information about
-  task is available.
+- **Celery Beat**: Fixed exception caused by next_transit receiving an unexpected argument. (#4103)
 
-    Contributed by :github_user:`tramora`.
+    Contributed by **DDevine**.
 
-- **Schedules**: Fixed pickled crontab schedules to restore properly (Issue #3826).
+- Introduce exponential backoff with Task auto-retry (#4101)
 
-    Contributed by **Taylor C. Richberger**.
+    Contributed by **David Baumgold**.
 
-- **Results**: Added SSL option for redis backends (Issue #3830).
+- **AsyncResult**: Remove weak-references to bound methods in AsyncResult promises. (#4131)
 
-    Contributed by **Chris Kuehl**.
+    Contributed by **Vinod Chandru**.
 
-- Documentation and examples improvements by:
+Documentation, CI, Installation and Tests fixes:
 
-    - **Bruno Alla**
-    - **Jamie Alessio**
-    - **Vivek Anand**
-    - **Peter Bittner**
-    - **Kalle Bronsen**
+
+    - **Sammie S. Taunton**
+    - **Dan Wilson**
+    - :github_user:`pachewise`
+    - **Sergi Almacellas Abellana**
+    - **Omer Katz**
+    - **Alex Zaitsev**
+    - **Leo Singer**
+    - **Rachel Johnson**
     - **Jon Dufresne**
-    - **James Michael DuPont**
-    - **Sergey Fursov**
     - **Samuel Dion-Girardeau**
-    - **Daniel Hahler**
-    - **Mike Helmick**
-    - **Marc Hörsken**
-    - **Christopher Hoskin**
-    - **Daniel Huang**
-    - **Primož Kerin**
-    - **Michal Kuffa**
-    - **Simon Legner**
-    - **Anthony Lukach**
-    - **Ed Morley**
-    - **Jay McGrath**
-    - **Rico Moorman**
-    - **Viraj Navkal**
-    - **Ross Patterson**
-    - **Dmytro Petruk**
-    - **Luke Plant**
-    - **Eric Poelke**
-    - **Salvatore Rinchiera**
-    - **Arnaud Rocher**
-    - **Kirill Romanov**
-    - **Simon Schmidt**
-    - **Tamer Sherif**
-    - **YuLun Shih**
-    - **Ask Solem**
-    - **Tom 'Biwaa' Riat**
-    - **Arthur Vigil**
-    - **Joey Wilhelm**
-    - **Jian Yu**
-    - **YuLun Shih**
-    - **Arthur Vigil**
-    - **Joey Wilhelm**
-    - :github_user:`baixuexue123`
-    - :github_user:`bronsen`
+    - **Ryan Guest**
+    - **Huang Huang**
+    - **Geoffrey Bauduin**
+    - **Andrew Wong**
+    - **Mads Jensen**
+    - **Jackie Leng**
+    - **Harry Moreno**
     - :github_user:`michael-k`
-    - :github_user:`orf`
-    - :github_user:`3lnc`
+    - **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`
+

+ 326 - 0
docs/history/changelog-4.1.rst

@@ -0,0 +1,326 @@
+.. _changelog-4.1:
+
+================
+ Change history
+================
+
+
+.. _version-4.1.0:
+
+4.1.0
+=====
+:release-date: 2017-07-25 00:00 PM PST
+:release-by: Omer Katz
+
+
+- **Configuration**: CELERY_SEND_EVENTS instead of CELERYD_SEND_EVENTS for 3.1.x compatibility (#3997)
+
+ Contributed by **abhinav nilaratna**.
+
+- **App**: Restore behavior so Broadcast queues work. (#3934)
+
+ Contributed by **Patrick Cloke**.
+
+- **Sphinx**: Make appstr use standard format (#4134) (#4139)
+
+ Contributed by **Preston Moore**.
+
+- **App**: Make id, name always accessible from logging.Formatter via extra (#3994)
+
+ Contributed by **Yoichi NAKAYAMA**.
+
+- **Worker**: Add worker_shutting_down signal (#3998)
+
+ Contributed by **Daniel Huang**.
+
+- **PyPy**: Support PyPy version 5.8.0 (#4128)
+
+ Contributed by **Omer Katz**.
+
+- **Results**: Elasticsearch: Fix serializing keys (#3924)
+
+ Contributed by :github_user:`staticfox`.
+
+- **Canvas**: Deserialize all tasks in a chain (#4015)
+
+ Contributed by :github_user:`fcoelho`.
+
+- **Systemd**: Recover loglevel for ExecStart in systemd config (#4023)
+
+ Contributed by **Yoichi NAKAYAMA**.
+
+- **Sphinx**: Use the Sphinx add_directive_to_domain API. (#4037)
+
+ Contributed by **Patrick Cloke**.
+
+- **App**: Pass properties to before_task_publish signal (#4035)
+
+ Contributed by **Javier Domingo Cansino**.
+
+- **Results**: Add SSL option for Redis backends (#3831)
+
+ Contributed by **Chris Kuehl**.
+
+- **Beat**: celery.schedule.crontab: fix reduce (#3826) (#3827)
+
+ Contributed by **Taylor C. Richberger**.
+
+- **State**: Fix celery issues when using flower REST API
+
+ Contributed by **Thierry RAMORASOAVINA**.
+
+- **Results**: Elasticsearch: Fix serializing document id.
+
+ Contributed by **Acey9**.
+
+- **Beat**: Make shallow copy of schedules dictionary
+
+ Contributed by **Brian May**.
+
+- **Beat**: Populate heap when periodic tasks are changed
+
+ Contributed by **Wojciech Żywno**.
+
+- **Task**: Allow class methods to define tasks (#3952)
+
+ Contributed by **georgepsarakis**.
+
+- **Platforms**: Always return boolean value when checking if signal is supported (#3962).
+
+ Contributed by **Jian Yu**.
+
+- **Canvas**: Avoid duplicating chains in chords (#3779)
+
+ Contributed by **Ryan Hiebert**.
+
+- **Canvas**: Lookup task only if list has items (#3847)
+
+ Contributed by **Marc Gibbons**.
+
+- **Results**: Allow unicode message for exception raised in task (#3903)
+
+ Contributed by **George Psarakis**.
+
+- **Python3**: Support for Python 3.6 (#3904, #3903, #3736)
+
+ Contributed by **Jon Dufresne**, **George Psarakis**, **Asif Saifuddin Auvi**, **Omer Katz**.
+
+- **App**: Fix retried tasks with expirations (#3790)
+
+ Contributed by **Brendan MacDonell**.
+
+- * Fixes items format route in docs (#3875)
+
+ Contributed by **Slam**.
+
+- **Utils**: Fix maybe_make_aware (#3850)
+
+ Contributed by **Taylor C. Richberger**.
+
+- **Task**: Fix task ETA issues when timezone is defined in configuration (#3867)
+
+ Contributed by **George Psarakis**.
+
+- **Concurrency**: Consumer does not shutdown properly when embedded in gevent application (#3746)
+
+ Contributed by **Arcadiy Ivanov**.
+
+- **Canvas**: Fix #3725: Task replaced with group does not complete (#3731)
+
+ Contributed by **Morgan Doocy**.
+
+- **Task**: Correct order in chains with replaced tasks (#3730)
+
+ Contributed by **Morgan Doocy**.
+
+- **Result**: Enable synchronous execution of sub-tasks (#3696)
+
+ Contributed by **shalev67**.
+
+- **Task**: Fix request context for blocking task apply (added hostname) (#3716)
+
+ Contributed by **Marat Sharafutdinov**.
+
+- **Utils**: Fix task argument handling (#3678) (#3693)
+
+ Contributed by **Roman Sichny**.
+
+- **Beat**: Provide a transparent method to update the Scheduler heap (#3721)
+
+ Contributed by **Alejandro Pernin**.
+
+- **Beat**: Specify default value for pidfile option of celery beat. (#3722)
+
+ Contributed by **Arnaud Rocher**.
+
+- **Results**: Elasticsearch: Stop generating a new field every time when a new result is being put (#3708)
+
+ Contributed by **Mike Chen**.
+
+- **Requirements**
+
+    - Now depends on :ref:`Kombu 4.1.0 <kombu:version-4.1.0>`.
+
+- **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 (#3736).
+
+    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**
+    - **Vivek Anand**
+    - **Peter Bittner**
+    - **Kalle Bronsen**
+    - **Jon Dufresne**
+    - **James Michael DuPont**
+    - **Sergey Fursov**
+    - **Samuel Dion-Girardeau**
+    - **Daniel Hahler**
+    - **Mike Helmick**
+    - **Marc Hörsken**
+    - **Christopher Hoskin**
+    - **Daniel Huang**
+    - **Primož Kerin**
+    - **Michal Kuffa**
+    - **Simon Legner**
+    - **Anthony Lukach**
+    - **Ed Morley**
+    - **Jay McGrath**
+    - **Rico Moorman**
+    - **Viraj Navkal**
+    - **Ross Patterson**
+    - **Dmytro Petruk**
+    - **Luke Plant**
+    - **Eric Poelke**
+    - **Salvatore Rinchiera**
+    - **Arnaud Rocher**
+    - **Kirill Romanov**
+    - **Simon Schmidt**
+    - **Tamer Sherif**
+    - **YuLun Shih**
+    - **Ask Solem**
+    - **Tom 'Biwaa' Riat**
+    - **Arthur Vigil**
+    - **Joey Wilhelm**
+    - **Jian Yu**
+    - **YuLun Shih**
+    - **Arthur Vigil**
+    - **Joey Wilhelm**
+    - :github_user:`baixuexue123`
+    - :github_user:`bronsen`
+    - :github_user:`michael-k`
+    - :github_user:`orf`
+    - :github_user:`3lnc`

+ 1 - 0
docs/history/index.rst

@@ -13,6 +13,7 @@ version please visit :ref:`changelog`.
 .. toctree::
     :maxdepth: 2
 
+    changelog-4.1
     changelog-4.0
     changelog-3.1
     whatsnew-3.0