Change history for Celery 2.5

    If you’re looking for versions prior to 2.5 you should visit our History of releases.

    This is a dummy release performed for the following goals:

    • Protect against force upgrading to Kombu 2.2.0
    • Version parity with django-celery
    • A bug causes messages to be sent with UTC timestamps even though CELERY_ENABLE_UTC was not enabled (Issue #636).
    • celerybeat: No longer crashes if an entry’s args is set to None (Issue #657).
    • Autoreload did not work if a module’s __file__ attribute was set to the modules ‘.pyc’ file. (Issue #647).
    • Fixes early 2.5 compatibility where __package__ does not exist (Issue #638).
    • Now depends on Kombu 2.1.5.

    • Django documentation has been moved to the main Celery docs.

    • New signal can be used to configure workers by hostname.

    • Signal.connect can now be used as a decorator.

      Example:

    • Invalid task messages are now rejected instead of acked.

      This means that they will be moved to the dead-letter queue introduced in the latest RabbitMQ version (but must be enabled manually, consult the RabbitMQ documentation).

    • Internal logging calls has been cleaned up to work better with tools like Sentry.

      Contributed by David Cramer.

    • Programs now verifies that the pidfile is actually written correctly (Issue #641).

      Hopefully this will crash the worker immediately if the system is out of space to store the complete pidfile.

      In addition, we now verify that existing pidfiles contain a new line so that a partially written pidfile is detected as broken, as before doing:

      echo -n “1” > celeryd.pid

      would cause the worker to think that an existing instance was already running (init has pid 1 after all).

    • Fixed 2.5 compatibility issue with use of print_exception.

      Fix contributed by Martin Melin.

    • Fixed 2.5 compatibility issue with imports.

    • All programs now fix up __package__ when called as main.

      Fix contributed by Martin Melin.

    • [celery control|inspect] can now be configured on the command-line.

      Like with the worker it is now possible to configure celery settings on the command-line for celery control|inspect

    • Version dependency for python-dateutil fixed to be strict.

      Fix contributed by Thomas Meson.

    • Task.__call__ is now optimized away in the task tracer rather than when the task class is created.

    • Autoreload’s inotify support has been improved.

      Contributed by Mher Movsisyan.

    • The Django broker documentation has been improved.

    • Removed confusing warning at top of routing user guide.

    • Eventlet/Gevent: A small typo caused the worker to hang when eventlet/gevent was used, this was because the environment was not monkey patched early enough.
    • Eventlet/Gevent: Another small typo caused the mediator to be started with eventlet/gevent, which would make the worker sometimes hang at shutdown.
    • Mulitprocessing: Fixed an error occurring if the pool was stopped before it was properly started.
    • Proxy objects now redirects __doc__ and __name__ so help(obj) works.
    • celery shell: can now be started with --eventlet or --gevent options to apply their monkey patches.

    See What’s new in Celery 2.5.

    Bugfix releases will still be found in the changelog.