Browse Source

Bumps version to 2.5.0b1 and updates Changelog

Ask Solem 13 years ago
parent
commit
18b0e90267
3 changed files with 172 additions and 4 deletions
  1. 170 2
      Changelog
  2. 1 1
      celery/__init__.py
  3. 1 1
      docs/includes/introduction.txt

+ 170 - 2
Changelog

@@ -12,14 +12,182 @@
 :status: DEVELOPMENT
 :branch: master
 
-* Adds Chord support for the memcached backend (Issue #533).
+.. _v250-important:
+
+Important Notes
+===============
+
+* The broker connection pool is now enabled by default with a limit
+  of 10 connections.
+
+    If you have many threads/green-threads using connections you may want
+    to tweak the limit to avoid contention.
+
+    See :settings:`BROKER_POOL_LIMIT` for more information.
+
+* AMQP Result Backend: Exchange no longer *auto delete*.
+
+    The exchange used for results used to have the *auto_delete* flag set,
+    that could result in annoying race conditions.
+
+    .. admonition:: For RabbitMQ users
+
+        Old exchanges created with the *auto_delete* flag enabled has
+        to be removed, this is because they are no longer equivalent to the
+        exchanges created by this version.
+
+        The :program:`camqadm` command can be used to delete the
+        previous exchange::
+
+            $ camqadm exchange.delete celeryresults
+
+        As an alternative to deleting the old exchange you can
+        configure a new name for the exchange::
+
+            CELERY_RESULT_EXCHANGE = "celeryresults2"
+
+        But you have to make sure that both clients and workers
+        use this new setting, so they are updated to use the same
+        exchange name.
+
+.. _v250-news:
+
+News
+====
+
+* Timezone support.
+
+    The local timezone is still used by default, because enabling
+    time zone support means that workers running versions pre 2.5
+    will be out of sync with upgraded workers.  UTC will be the default
+    version in 3.0, since it is essentially a backward incompatible change.
+
+    To enable UTC you have to set :setting:`CELERY_ENABLE_UTC`::
+
+        CELERY_ENABLE_UTC
+
+    With that enabled dates and times in task message will now be
+    converted to UTC, and then converted back to the local timezone
+    when received by a worker.
+
+    You can also change the local timezone by the :setting:`CELERY_TIMEZONE`
+    setting. Custom timezones requires the :mod:`pytz` library to be installed.
+
+    .. note::
+
+        A new ``utc`` header extension has been added to the task message
+        format.  It is a boolean that if set means the timezone of dates
+        and times in the message are in UTC.
+
+* New Message Signing Serializer.
+
+    A new serializer has been added that signs and verifies the signature
+    of messages.
+
+    The name of the new serializer is ``auth``, and needs additional
+    configuration to work (see :ref:`conf-security`).
+
+    [ TODO need to add EXAMPLE configuration here, and also to the
+    configuration docs]
+
+* New :setting:`CELERY_ANNOTATIONS` setting enables changing of arbitrary
+    task attributes from the configuration.
+
+    The setting can be a dict, or a list of annotation
+    objects that filter for tasks and return a map of attributes
+    to change.
+
+    For example this is an annotation to change the ``rate_limit`` attribute
+    for the ``tasks.add`` task:
+
+    .. code-block:: python
+
+        CELERY_ANNOTATIONS = {"tasks.add": {"rate_limit": "10/s"}}
+
+    or change the same for all tasks:
+
+    .. code-block:: python
+
+        CELERY_ANNOTATIONS = {"*": {"rate_limit": "10/s"}}
+
+    You can change methods too, for example the ``on_failure`` handler:
+
+    .. code-block:: python
+
+        def my_on_failure(self, exc, task_id, args, kwargs, einfo):
+            print("Oh no! Task failed: %r" % (exc, ))
+
+        CELERY_ANNOTATIONS = {"*": {"on_failure": my_on_failure}}
+
+    If you need more flexibility then you can also create objects
+    that select the tasks to annotate, instead of a dict:
+
+    .. code-block:: python
+
+        class MyAnnotate(object):
+
+            def annotate(self, task):
+                if task.name.startswith("tasks."):
+                    return {"rate_limit": "10/s"}
+
+        CELERY_ANNOTATIONS = (MyAnnotate(), {...})
+
+* Adds efficient Chord support for the memcached backend (Issue #533).
 
     Contributed by Dan McGee.
 
+* Adds fallback Chord support for the AMQP backend.
+
 * The `--uid` argument to daemons now uses ``initgroups()`` to set
   groups to all the groups the user is a member of.
 
-    Fix contributed by Łukasz Oleś.
+    Contributed by Łukasz Oleś.
+
+* Redis result backend: Adds support for a ``max_connections`` parameter.
+
+    It is now possible to configure the maximum number of
+    simultaneous connections in the Redis connection pool used for
+    results.
+
+    The default max connections setting can be configured using the
+    :setting:`CELERY_REDIS_MAX_CONNECTIONS` setting,
+    or it can be changed individually by ``RedisBackend(max_connections=int)``.
+
+    Contributed by Steeve Morin.
+
+* Redis result backend: Adds the ability to wait for results without polling.
+
+    Contributed by Steeve Morin.
+
+* There's a new :ref:`guide-security` in the documentation.
+
+* The init scripts has been updated, and many bugs fixed.
+
+    Contributed by Chris Streeter.
+
+* User (tilde) is now expanded in command line arguments.
+
+* Can now configure CELERYCTL envvar in :file:`/etc/default/celeryd`.
+
+    While not necessary for operation, :program:`celeryctl` is used for the
+    ``celeryd status`` command, and the path to :program:`celeryctl` must be
+    configured for that to work.
+
+    The daemonization cookbook contains examples.
+
+    Contributed by Jude Nagurney.
+
+* The MongoDB result backend can now use Replica Sets.
+
+    Contributed by Ivan Metzlar.
+
+* ``celery.worker.control`` is now a single module.
+
+* ``BaseAsyncResult`` and ``AsyncResult`` is now merged into a single
+  ``AsyncResult``.
+
+* Moved some common threading functionality to new module
+  :mod:`celery.utils.threads`
 
 .. _version-2.4.4:
 

+ 1 - 1
celery/__init__.py

@@ -5,7 +5,7 @@
 
 from __future__ import absolute_import
 
-VERSION = (2, 5, 0, "a1")
+VERSION = (2, 5, 0, "b1")
 __version__ = ".".join(map(str, VERSION[0:3])) + "".join(VERSION[3:])
 __author__ = "Ask Solem"
 __contact__ = "ask@celeryproject.org"

+ 1 - 1
docs/includes/introduction.txt

@@ -1,4 +1,4 @@
-:Version: 2.5.0a1
+:Version: 2.5.0b1
 :Web: http://celeryproject.org/
 :Download: http://pypi.python.org/pypi/celery/
 :Source: http://github.com/ask/celery/