| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386 | 
							- .. _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.
 
 
  |