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