Hello community,
here is the log from the commit of package python-django-celery for
openSUSE:Factory checked in at 2012-10-07 19:55:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-celery (Old)
and /work/SRC/openSUSE:Factory/.python-django-celery.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-celery", Maintainer is ""
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-celery/python-django-celery.changes
2012-09-14 12:34:44.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.python-django-celery.new/python-django-celery.changes
2012-10-07 19:55:26.000000000 +0200
@@ -1,0 +2,11 @@
+Fri Sep 21 19:22:17 UTC 2012 - [email protected]
+
+- Update to 3.0.10:
+ - Now depends on Celery 3.0.10
+ - Fixed timezone issues when using the Database periodic task scheduler.
+ - Admin: Periodic task form now adds tasks imported using CELERY_IMPORTS,
+ and CELERY_INCLUDE.
+ - Memory leak warning is now only output once.
+ - Periodic task form in Admin no longer lists the celery built-in tasks.
+
+-------------------------------------------------------------------
Old:
----
django-celery-3.0.9.tar.bz2
New:
----
django-celery-3.0.10.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-celery.spec ++++++
--- /var/tmp/diff_new_pack.tSkpFY/_old 2012-10-07 19:55:28.000000000 +0200
+++ /var/tmp/diff_new_pack.tSkpFY/_new 2012-10-07 19:55:28.000000000 +0200
@@ -20,7 +20,7 @@
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from
distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
Name: python-django-celery
-Version: 3.0.9
+Version: 3.0.10
Release: 0
Url: http://celeryproject.org
Summary: Django Celery Integration
@@ -33,7 +33,7 @@
#BuildRequires: python-Sphinx
#BuildRequires: python-sphinxcontrib-issuetracker
BuildRequires: python-django
-Requires: python-celery >= 3.0.9
+Requires: python-celery >= 3.0.10
Requires: python-celerymon
Requires: python-django-picklefield
%if 0%{?suse_version}
++++++ django-celery-3.0.9.tar.bz2 -> django-celery-3.0.10.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/Changelog
new/django-celery-3.0.10/Changelog
--- old/django-celery-3.0.9/Changelog 2012-08-31 18:51:52.000000000 +0200
+++ new/django-celery-3.0.10/Changelog 2012-09-21 11:29:47.000000000 +0200
@@ -5,6 +5,23 @@
.. contents::
:local:
+.. _version-3.0.10:
+
+3.0.10
+======
+:release-date: 2012-09-21 10:29 A.M BST
+
+- Now depends on Celery 3.0.10
+
+- Fixed timezone issues when using the Database periodic task scheduler.
+
+- Admin: Periodic task form now adds tasks imported using ``CELERY_IMPORTS``,
+ and ``CELERY_INCLUDE``.
+
+- Memory leak warning is now only output once.
+
+- Periodic task form in Admin no longer lists the celery built-in tasks.
+
.. _version-3.0.9:
3.0.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/PKG-INFO
new/django-celery-3.0.10/PKG-INFO
--- old/django-celery-3.0.9/PKG-INFO 2012-08-31 18:58:42.000000000 +0200
+++ new/django-celery-3.0.10/PKG-INFO 2012-09-21 11:31:54.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: django-celery
-Version: 3.0.9
+Version: 3.0.10
Summary: Django Celery Integration.
Home-page: http://celeryproject.org
Author: Ask Solem
@@ -12,7 +12,7 @@
.. image::
http://cloud.github.com/downloads/celery/celery/celery_128.png
- :Version: 3.0.9
+ :Version: 3.0.10
:Web: http://celeryproject.org/
:Download: http://pypi.python.org/pypi/django-celery/
:Source: http://github.com/celery/django-celery/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/README
new/django-celery-3.0.10/README
--- old/django-celery-3.0.9/README 2012-08-31 18:53:46.000000000 +0200
+++ new/django-celery-3.0.10/README 2012-09-21 07:38:45.000000000 +0200
@@ -4,7 +4,7 @@
.. image:: http://cloud.github.com/downloads/celery/celery/celery_128.png
-:Version: 3.0.9
+:Version: 3.0.10
:Web: http://celeryproject.org/
:Download: http://pypi.python.org/pypi/django-celery/
:Source: http://github.com/celery/django-celery/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/README.rst
new/django-celery-3.0.10/README.rst
--- old/django-celery-3.0.9/README.rst 2012-08-31 18:53:46.000000000 +0200
+++ new/django-celery-3.0.10/README.rst 2012-09-21 07:38:45.000000000 +0200
@@ -4,7 +4,7 @@
.. image:: http://cloud.github.com/downloads/celery/celery/celery_128.png
-:Version: 3.0.9
+:Version: 3.0.10
:Web: http://celeryproject.org/
:Download: http://pypi.python.org/pypi/django-celery/
:Source: http://github.com/celery/django-celery/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/django_celery.egg-info/PKG-INFO
new/django-celery-3.0.10/django_celery.egg-info/PKG-INFO
--- old/django-celery-3.0.9/django_celery.egg-info/PKG-INFO 2012-08-31
18:58:40.000000000 +0200
+++ new/django-celery-3.0.10/django_celery.egg-info/PKG-INFO 2012-09-21
11:31:38.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: django-celery
-Version: 3.0.9
+Version: 3.0.10
Summary: Django Celery Integration.
Home-page: http://celeryproject.org
Author: Ask Solem
@@ -12,7 +12,7 @@
.. image::
http://cloud.github.com/downloads/celery/celery/celery_128.png
- :Version: 3.0.9
+ :Version: 3.0.10
:Web: http://celeryproject.org/
:Download: http://pypi.python.org/pypi/django-celery/
:Source: http://github.com/celery/django-celery/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-celery-3.0.9/django_celery.egg-info/requires.txt
new/django-celery-3.0.10/django_celery.egg-info/requires.txt
--- old/django-celery-3.0.9/django_celery.egg-info/requires.txt 2012-08-31
18:58:40.000000000 +0200
+++ new/django-celery-3.0.10/django_celery.egg-info/requires.txt
2012-09-21 11:31:38.000000000 +0200
@@ -1 +1 @@
-celery>=3.0.9
\ No newline at end of file
+celery>=3.0.10
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/djcelery/__init__.py
new/django-celery-3.0.10/djcelery/__init__.py
--- old/django-celery-3.0.9/djcelery/__init__.py 2012-08-31
18:53:38.000000000 +0200
+++ new/django-celery-3.0.10/djcelery/__init__.py 2012-09-21
10:09:31.000000000 +0200
@@ -5,7 +5,7 @@
import os
-VERSION = (3, 0, 9)
+VERSION = (3, 0, 10)
__version__ = ".".join(map(str, VERSION[0:3])) + "".join(VERSION[3:])
__author__ = "Ask Solem"
__contact__ = "[email protected]"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/djcelery/admin.py
new/django-celery-3.0.10/djcelery/admin.py
--- old/django-celery-3.0.9/djcelery/admin.py 2012-08-24 18:51:57.000000000
+0200
+++ new/django-celery-3.0.10/djcelery/admin.py 2012-09-21 11:16:35.000000000
+0200
@@ -14,11 +14,9 @@
from celery import current_app
from celery import states
-from celery import registry
from celery.task.control import broadcast, revoke, rate_limit
from celery.utils.text import abbrtask
-from . import loaders
from .admin_utils import action, display_field, fixedwidth
from .models import (TaskState, WorkerState,
PeriodicTask, IntervalSchedule, CrontabSchedule)
@@ -230,8 +228,9 @@
def periodic_task_form():
- loaders.autodiscover()
- tasks = list(sorted(registry.tasks.regular().keys()))
+ current_app.loader.import_default_modules()
+ tasks = list(sorted(name for name in current_app.tasks
+ if not name.startswith('celery.')))
choices = (("", ""), ) + tuple(zip(tasks, tasks))
class PeriodicTaskForm(forms.ModelForm):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/djcelery/app.py
new/django-celery-3.0.10/djcelery/app.py
--- old/django-celery-3.0.9/djcelery/app.py 2012-07-07 14:06:38.000000000
+0200
+++ new/django-celery-3.0.10/djcelery/app.py 2012-09-21 07:37:03.000000000
+0200
@@ -1,7 +1,7 @@
from __future__ import absolute_import
-from celery.app import default_app
+from celery import current_app
#: The Django-Celery app instance.
-app = default_app
+app = current_app._get_current_object()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/djcelery/common.py
new/django-celery-3.0.10/djcelery/common.py
--- old/django-celery-3.0.9/djcelery/common.py 2012-08-24 18:51:57.000000000
+0200
+++ new/django-celery-3.0.10/djcelery/common.py 2012-09-12 18:12:43.000000000
+0200
@@ -16,7 +16,7 @@
Can e.g. be used inside tasks like this::
from celery import task
- from djcelery.common import respect_to_language
+ from djcelery.common import respect_language
@task
def my_task(language=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/djcelery/loaders.py
new/django-celery-3.0.10/djcelery/loaders.py
--- old/django-celery-3.0.9/djcelery/loaders.py 2012-08-30 17:57:44.000000000
+0200
+++ new/django-celery-3.0.10/djcelery/loaders.py 2012-09-20
14:57:01.000000000 +0200
@@ -26,7 +26,8 @@
def _maybe_close_fd(fh):
try:
os.close(fh.fileno())
- except (AttributeError, OSError):
+ except (AttributeError, OSError, TypeError):
+ # TypeError added for celery#962
pass
@@ -46,6 +47,7 @@
# Need to close any open database connection after
# any embedded celerybeat process forks.
signals.beat_embedded_init.connect(self.close_database)
+ signals.worker_ready.connect(self.warn_if_debug)
def now(self, utc=False):
return datetime.utcnow() if utc else now()
@@ -120,14 +122,16 @@
listed in ``INSTALLED_APPS``.
"""
- if settings.DEBUG:
- warnings.warn("Using settings.DEBUG leads to a memory leak, never "
- "use this setting in production environments!")
self.import_default_modules()
self.close_database()
self.close_cache()
+ def warn_if_debug(self, **kwargs):
+ if settings.DEBUG:
+ warnings.warn("Using settings.DEBUG leads to a memory leak, never "
+ "use this setting in production environments!")
+
def import_default_modules(self):
super(DjangoLoader, self).import_default_modules()
self.autodiscover()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/djcelery/models.py
new/django-celery-3.0.10/djcelery/models.py
--- old/django-celery-3.0.9/djcelery/models.py 2012-08-24 18:51:58.000000000
+0200
+++ new/django-celery-3.0.10/djcelery/models.py 2012-09-21 10:36:41.000000000
+0200
@@ -148,8 +148,7 @@
hour=self.hour,
day_of_week=self.day_of_week,
day_of_month=self.day_of_month,
- month_of_year=self.month_of_year,
- nowfun=now)
+ month_of_year=self.month_of_year)
@classmethod
def from_schedule(cls, schedule):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/djcelery/schedulers.py
new/django-celery-3.0.10/djcelery/schedulers.py
--- old/django-celery-3.0.9/djcelery/schedulers.py 2012-08-24
18:51:58.000000000 +0200
+++ new/django-celery-3.0.10/djcelery/schedulers.py 2012-09-21
11:12:37.000000000 +0200
@@ -5,9 +5,11 @@
from warnings import warn
from anyjson import deserialize, serialize
+from celery import current_app
from celery import schedules
from celery.beat import Scheduler, ScheduleEntry
from celery.utils.encoding import safe_str, safe_repr
+from celery.utils.timeutils import is_naive
from kombu.utils.finalize import Finalize
from django.db import transaction
@@ -15,7 +17,7 @@
from .models import (PeriodicTask, PeriodicTasks,
CrontabSchedule, IntervalSchedule)
-from .utils import DATABASE_ERRORS, now
+from .utils import DATABASE_ERRORS, make_aware
# This scheduler must wake up more frequently than the
# regular of 5 minutes because it needs to take external
@@ -29,6 +31,7 @@
save_fields = ["last_run_at", "total_run_count", "no_changes"]
def __init__(self, model):
+ self.app = current_app._get_current_object()
self.name = model.name
self.task = model.task
self.schedule = model.schedule
@@ -51,7 +54,10 @@
if not model.last_run_at:
model.last_run_at = self._default_now()
- self.last_run_at = model.last_run_at
+ orig = self.last_run_at = model.last_run_at
+ if not is_naive(self.last_run_at):
+ self.last_run_at = self.last_run_at.replace(tzinfo=None)
+ assert orig.hour == self.last_run_at.hour # timezone sanity
def is_due(self):
if not self.model.enabled:
@@ -59,10 +65,10 @@
return self.schedule.is_due(self.last_run_at)
def _default_now(self):
- return now()
+ return self.app.now()
def next(self):
- self.model.last_run_at = now()
+ self.model.last_run_at = self.app.now()
self.model.total_run_count += 1
self.model.no_changes = True
return self.__class__(self.model)
@@ -74,6 +80,7 @@
obj = self.model._default_manager.get(pk=self.model.pk)
for field in self.save_fields:
setattr(obj, field, getattr(self.model, field))
+ obj.last_run_at = make_aware(obj.last_run_at)
obj.save()
@classmethod
@@ -117,6 +124,7 @@
Changes = PeriodicTasks
_schedule = None
_last_timestamp = None
+ _initial_read = False
def __init__(self, *args, **kwargs):
self._dirty = set()
@@ -141,25 +149,26 @@
return s
def schedule_changed(self):
- if self._last_timestamp is not None:
+ try:
+ # If MySQL is running with transaction isolation level
+ # REPEATABLE-READ (default), then we won't see changes done by
+ # other transactions until the current transaction is
+ # committed (Issue #41).
try:
- # If MySQL is running with transaction isolation level
- # REPEATABLE-READ (default), then we won't see changes done by
- # other transactions until the current transaction is
- # committed (Issue #41).
- try:
- transaction.commit()
- except transaction.TransactionManagementError:
- pass # not in transaction management.
-
- ts = self.Changes.last_change()
- if not ts or ts < self._last_timestamp:
- return False
- except DATABASE_ERRORS, exc:
- warn(RuntimeWarning("Database gave error: %r" % (exc, )))
- return False
- self._last_timestamp = now()
- return True
+ transaction.commit()
+ except transaction.TransactionManagementError:
+ pass # not in transaction management.
+
+ last, ts = self._last_timestamp, self.Changes.last_change()
+ except DATABASE_ERRORS, exc:
+ warn(RuntimeWarning("Database gave error: %r" % (exc, )))
+ return False
+ try:
+ if ts and ts > (last if last else ts):
+ return True
+ finally:
+ self._last_timestamp = ts
+ return False
def reserve(self, entry):
new_entry = Scheduler.reserve(self, entry)
@@ -170,7 +179,7 @@
@transaction.commit_manually
def sync(self):
- self.logger.debug("Writing dirty entries...")
+ self.logger.info("Writing entries...")
_tried = set()
try:
try:
@@ -207,15 +216,23 @@
if self.app.conf.CELERY_TASK_RESULT_EXPIRES:
entries.setdefault("celery.backend_cleanup", {
"task": "celery.backend_cleanup",
- "schedule": schedules.crontab("0", "4", "*", nowfun=now),
+ "schedule": schedules.crontab("0", "4", "*"),
"options": {"expires": 12 * 3600}})
self.update_from_dict(entries)
@property
def schedule(self):
- if self.schedule_changed():
+ update = False
+ if not self._initial_read:
+ self.logger.debug('DatabaseScheduler: intial read')
+ update = True
+ self._initial_read = True
+ elif self.schedule_changed():
+ self.logger.info("DatabaseScheduler: Schedule changed.")
+ update = True
+
+ if update:
self.sync()
- self.logger.debug("DatabaseScheduler: Schedule changed.")
self._schedule = self.all_as_schedule()
if self.logger.isEnabledFor(logging.DEBUG):
self.logger.debug(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/djcelery/tests/test_models.py
new/django-celery-3.0.10/djcelery/tests/test_models.py
--- old/django-celery-3.0.9/djcelery/tests/test_models.py 2012-07-26
15:34:21.000000000 +0200
+++ new/django-celery-3.0.10/djcelery/tests/test_models.py 2012-09-21
10:15:12.000000000 +0200
@@ -2,13 +2,13 @@
from datetime import datetime, timedelta
-from celery import current_app
from celery import states
from celery.utils import gen_unique_id
+from djcelery import celery
from djcelery.models import TaskMeta, TaskSetMeta
-from djcelery.tests.utils import unittest
from djcelery.utils import now
+from djcelery.tests.utils import unittest
class TestModels(unittest.TestCase):
@@ -47,13 +47,13 @@
date_done=now() - timedelta(days=10))
expired = TaskMeta.objects.get_all_expired(
- current_app.conf.CELERY_TASK_RESULT_EXPIRES)
+ celery.conf.CELERY_TASK_RESULT_EXPIRES)
self.assertIn(m1, expired)
self.assertNotIn(m2, expired)
self.assertNotIn(m3, expired)
TaskMeta.objects.delete_expired(
- current_app.conf.CELERY_TASK_RESULT_EXPIRES)
+ celery.conf.CELERY_TASK_RESULT_EXPIRES)
self.assertNotIn(m1, TaskMeta.objects.all())
def test_tasksetmeta(self):
@@ -73,13 +73,13 @@
date_done=now() - timedelta(days=10))
expired = TaskSetMeta.objects.get_all_expired(
- current_app.conf.CELERY_TASK_RESULT_EXPIRES)
+ celery.conf.CELERY_TASK_RESULT_EXPIRES)
self.assertIn(m1, expired)
self.assertNotIn(m2, expired)
self.assertNotIn(m3, expired)
TaskSetMeta.objects.delete_expired(
- current_app.conf.CELERY_TASK_RESULT_EXPIRES)
+ celery.conf.CELERY_TASK_RESULT_EXPIRES)
self.assertNotIn(m1, TaskSetMeta.objects.all())
m4 = self.createTaskSetMeta()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-celery-3.0.9/djcelery/tests/test_schedulers.py
new/django-celery-3.0.10/djcelery/tests/test_schedulers.py
--- old/django-celery-3.0.9/djcelery/tests/test_schedulers.py 2012-08-24
18:51:58.000000000 +0200
+++ new/django-celery-3.0.10/djcelery/tests/test_schedulers.py 2012-09-21
11:26:43.000000000 +0200
@@ -8,10 +8,9 @@
from celery.utils.timeutils import timedelta_seconds
from djcelery import schedulers
-from djcelery.app import app
+from djcelery import celery
from djcelery.models import PeriodicTask, IntervalSchedule, CrontabSchedule
from djcelery.models import PeriodicTasks
-from djcelery.utils import now
from djcelery.tests.utils import unittest
@@ -86,7 +85,7 @@
"exchange": "foo",
"routing_key": "cpu"}, e.options)
- right_now = now()
+ right_now = celery.now()
m2 = create_model_interval(schedule(timedelta(seconds=10)),
last_run_at=right_now)
self.assertTrue(m2.last_run_at)
@@ -103,11 +102,11 @@
def setUp(self):
PeriodicTask.objects.all().delete()
- self.prev_schedule = app.conf.CELERYBEAT_SCHEDULE
- app.conf.CELERYBEAT_SCHEDULE = {}
+ self.prev_schedule = celery.conf.CELERYBEAT_SCHEDULE
+ celery.conf.CELERYBEAT_SCHEDULE = {}
m1 = create_model_interval(schedule(timedelta(seconds=10)))
m2 = create_model_interval(schedule(timedelta(minutes=20)))
- m3 = create_model_crontab(crontab(minute="2,4,5", nowfun=now))
+ m3 = create_model_crontab(crontab(minute="2,4,5"))
for obj in m1, m2, m3:
obj.save()
self.s = self.Scheduler()
@@ -116,7 +115,7 @@
self.m3 = PeriodicTask.objects.get(name=m3.name)
def tearDown(self):
- app.conf.CELERYBEAT_SCHEDULE = self.prev_schedule
+ celery.conf.CELERYBEAT_SCHEDULE = self.prev_schedule
PeriodicTask.objects.all().delete()
def test_constructor(self):
@@ -158,11 +157,11 @@
def test_reserve(self):
e1 = self.s.schedule[self.m1.name]
self.s.schedule[self.m1.name] = self.s.reserve(e1)
- self.assertEqual(self.s.flushed, 2)
+ self.assertEqual(self.s.flushed, 1)
e2 = self.s.schedule[self.m2.name]
self.s.schedule[self.m2.name] = self.s.reserve(e2)
- self.assertEqual(self.s.flushed, 2)
+ self.assertEqual(self.s.flushed, 1)
self.assertIn(self.m2.name, self.s._dirty)
def test_sync_saves_last_run_at(self):
@@ -177,14 +176,13 @@
self.assertEqual(e2.last_run_at, last_run2)
def test_sync_syncs_before_save(self):
-
# Get the entry for m2
e1 = self.s.schedule[self.m2.name]
# Increment the entry (but make sure it doesn't sync)
self.s._last_sync = time()
e2 = self.s.schedule[e1.name] = self.s.reserve(e1)
- self.assertEqual(self.s.flushed, 2)
+ self.assertEqual(self.s.flushed, 1)
# Fetch the raw object from db, change the args
# and save the changes.
@@ -195,7 +193,7 @@
# get_schedule should now see the schedule has changed.
# and also sync the dirty objects.
e3 = self.s.schedule[self.m2.name]
- self.assertEqual(self.s.flushed, 3)
+ self.assertEqual(self.s.flushed, 2)
self.assertEqual(e3.last_run_at, e2.last_run_at)
self.assertListEqual(e3.args, [16, 16])
@@ -239,8 +237,7 @@
"%s: every 10.0 seconds" % p.name)
def test_PeriodicTask_unicode_crontab(self):
- p = create_model_crontab(crontab(hour="4, 5", day_of_week="4, 5",
- nowfun=now))
+ p = create_model_crontab(crontab(hour="4, 5", day_of_week="4, 5"))
self.assertEqual(unicode(p),
"%s: * 4,5 4,5 * * (m/h/d/dM/MY)" % p.name)
@@ -252,8 +249,7 @@
p2 = create_model_crontab(crontab(hour="4, 5",
minute="10,20,30",
day_of_month="1-7",
- month_of_year="*/3",
- nowfun=now))
+ month_of_year="*/3"))
s2 = p2.schedule
self.assertSetEqual(s2.hour, set([4, 5]))
self.assertSetEqual(s2.minute, set([10, 20, 30]))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/djcelery/tests/test_snapshot.py
new/django-celery-3.0.10/djcelery/tests/test_snapshot.py
--- old/django-celery-3.0.9/djcelery/tests/test_snapshot.py 2012-07-26
15:34:21.000000000 +0200
+++ new/django-celery-3.0.10/djcelery/tests/test_snapshot.py 2012-09-21
10:09:46.000000000 +0200
@@ -8,9 +8,10 @@
from celery.events.state import State, Worker, Task
from celery.utils import gen_unique_id
+from djcelery import celery
from djcelery import snapshot
from djcelery import models
-from djcelery.utils import now, make_aware
+from djcelery.utils import make_aware
from djcelery.tests.utils import unittest
_next_id = count(0).next
@@ -72,7 +73,7 @@
self.assertEqual(mt.name, task.name)
self.assertTrue(unicode(mt))
self.assertTrue(repr(mt))
- mt.eta = now()
+ mt.eta = celery.now()
self.assertIn("eta", unicode(mt))
self.assertIn(mt, models.TaskState.objects.active())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/docs/changelog.rst
new/django-celery-3.0.10/docs/changelog.rst
--- old/django-celery-3.0.9/docs/changelog.rst 2012-08-31 18:51:52.000000000
+0200
+++ new/django-celery-3.0.10/docs/changelog.rst 2012-09-21 11:29:47.000000000
+0200
@@ -5,6 +5,23 @@
.. contents::
:local:
+.. _version-3.0.10:
+
+3.0.10
+======
+:release-date: 2012-09-21 10:29 A.M BST
+
+- Now depends on Celery 3.0.10
+
+- Fixed timezone issues when using the Database periodic task scheduler.
+
+- Admin: Periodic task form now adds tasks imported using ``CELERY_IMPORTS``,
+ and ``CELERY_INCLUDE``.
+
+- Memory leak warning is now only output once.
+
+- Periodic task form in Admin no longer lists the celery built-in tasks.
+
.. _version-3.0.9:
3.0.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/docs/introduction.rst
new/django-celery-3.0.10/docs/introduction.rst
--- old/django-celery-3.0.9/docs/introduction.rst 2012-08-31
18:53:45.000000000 +0200
+++ new/django-celery-3.0.10/docs/introduction.rst 2012-09-21
07:38:40.000000000 +0200
@@ -4,7 +4,7 @@
.. image:: http://cloud.github.com/downloads/celery/celery/celery_128.png
-:Version: 3.0.9
+:Version: 3.0.10
:Web: http://celeryproject.org/
:Download: http://pypi.python.org/pypi/django-celery/
:Source: http://github.com/celery/django-celery/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/requirements/default.txt
new/django-celery-3.0.10/requirements/default.txt
--- old/django-celery-3.0.9/requirements/default.txt 2012-08-31
18:52:05.000000000 +0200
+++ new/django-celery-3.0.10/requirements/default.txt 2012-09-21
11:21:34.000000000 +0200
@@ -1 +1 @@
-celery>=3.0.9
+celery>=3.0.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/setup.cfg
new/django-celery-3.0.10/setup.cfg
--- old/django-celery-3.0.9/setup.cfg 2012-08-31 18:58:42.000000000 +0200
+++ new/django-celery-3.0.10/setup.cfg 2012-09-21 11:31:54.000000000 +0200
@@ -7,7 +7,7 @@
upload-dir = docs/.build/html
[bdist_rpm]
-requires = celery >= 3.0.9
+requires = celery >= 3.0.10
[egg_info]
tag_build =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-celery-3.0.9/setup.py
new/django-celery-3.0.10/setup.py
--- old/django-celery-3.0.9/setup.py 2012-08-31 18:52:22.000000000 +0200
+++ new/django-celery-3.0.10/setup.py 2012-09-21 11:21:29.000000000 +0200
@@ -173,7 +173,7 @@
scripts=["bin/djcelerymon"],
zip_safe=False,
install_requires=[
- "celery>=3.0.9",
+ "celery>=3.0.10",
],
cmdclass={"test": RunTests,
"quicktest": QuickRunTests,
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]