diff --git a/0001-Support-redis-4.5.2.patch b/0001-Support-redis-4.5.2.patch deleted file mode 100644 index 3dd8d6a..0000000 --- a/0001-Support-redis-4.5.2.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 3402c3489c5dd9833208d51c67259190bedfa35a Mon Sep 17 00:00:00 2001 -From: Daniel Garcia Moreno -Date: Mon, 29 May 2023 08:59:01 +0200 -Subject: [PATCH] Support redis >= 4.5.2 - -The redis-py 4.5.2 changes the UnixDomainSocketConnection class so now -it inherits from AbstractConnection: -https://github.com/redis/redis-py/releases/tag/v4.5.2 - -This patch makes sure that the health_check_interval parameter is -checked for the __init__ method of the main class and also the bases, so -it doesn't fail with the newer version of redis-py. ---- - kombu/transport/redis.py | 14 +++++++++----- - requirements/extras/redis.txt | 2 +- - 2 files changed, 10 insertions(+), 6 deletions(-) - -Index: kombu-5.2.4/kombu/transport/redis.py -=================================================================== ---- kombu-5.2.4.orig/kombu/transport/redis.py -+++ kombu-5.2.4/kombu/transport/redis.py -@@ -1139,11 +1139,17 @@ class Channel(virtual.Channel): - - # If the connection class does not support the `health_check_interval` - # argument then remove it. -- if ( -- hasattr(conn_class, '__init__') and -- not accepts_argument(conn_class.__init__, 'health_check_interval') -- ): -- connparams.pop('health_check_interval') -+ if hasattr(conn_class, '__init__'): -+ # check health_check_interval for the class and bases -+ # classes -+ classes = [conn_class] -+ if hasattr(conn_class, '__bases__'): -+ classes += list(conn_class.__bases__) -+ for klass in classes: -+ if accepts_argument(klass.__init__, 'health_check_interval'): -+ break -+ else: # no break -+ connparams.pop('health_check_interval') - - if conninfo.ssl: - # Connection(ssl={}) must be a dict containing the keys: diff --git a/kombu-5.2.4.tar.gz b/kombu-5.2.4.tar.gz deleted file mode 100644 index 8319368..0000000 --- a/kombu-5.2.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:37cee3ee725f94ea8bb173eaab7c1760203ea53bbebae226328600f9d2799610 -size 423450 diff --git a/kombu-5.3.5.tar.gz b/kombu-5.3.5.tar.gz new file mode 100644 index 0000000..8a4a49e --- /dev/null +++ b/kombu-5.3.5.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30e470f1a6b49c70dc6f6d13c3e4cc4e178aa6c469ceb6bcd55645385fc84b93 +size 438460 diff --git a/python-kombu.changes b/python-kombu.changes index bf797b2..05ed1e6 100644 --- a/python-kombu.changes +++ b/python-kombu.changes @@ -1,3 +1,69 @@ +------------------------------------------------------------------- +Thu Feb 1 10:44:57 UTC 2024 - Dirk Müller + +- update to 5.3.5: + * Fix ReadTheDocs CI + * fix(docs): add Redis to the list of transports where SSL is + supported + * Fixed Improper Method Call: Replaced `mktemp` + * fix: freeze set during ticks iter in async hub + * azure service bus: fix TypeError when using Managed + Identities + * Fix unacknowledge typo in restore_visible() + * Changed pyup -> dependabot for updating dependencies + * Fix crash when using global_keyprefix with a sentinel + connection +- update to 5.3.4: + * Use the correct protocol for SQS requests +- update to 5.3.3: + * Update redis.txt to align with celery main + * Handle Access Denied Exception in basic_ack Method + * fix azure servicebus using managed identity support + * Added as_uri method to MongoDB transport - Fixes #1795 + * Revert "[fix #1726] Use boto3 for SQS async requests" + * Create a lock on cached_property if not present + * added Python 3.12 in the CI + * using assert_called_once() in est__pop_ready_uses_lock + * fix: redis requeue concurrency bug #1800 +- update to 5.3.2: + * Reverted unwanted constraint introduced in #1629 with + max_retries + * Doc fix (hotfix for #1755) + * Python3.12: fix imports in kombu/utils/objects.py + * [fix #1726] Use boto3 for SQS async requests + * docs: Remove SimpleQueue import + * Fixed pre-commit issues + * azure service bus: add managed identity support + * fix: Prevent redis task loss when closing connection while in + poll + * Kombu & celery with SQS #222 + * syntax correction +- update to 5.3.1: + * Update pycurl version + * Update librabbitmq restrict py3.11 + * Update PyCurl version in SQS + * try python 3.11 on CI +- update to 5.3.0: + * [pre-commit.ci] pre-commit autoupdate + * Add fanout to filesystem + * Protect set of ready tasks by lock to avoid concurrent + updates + * Documentation: Update serialization page to indicate pickle + protocol version has been updated + * Use new entry_points interface + * Add `mypy` to the pipeline + * [pre-commit.ci] pre-commit autoupdate + * chore: Annotate semaphore.py + * Added possibility to serialize and deserialize binary + messages in json + * Annotate init files + * pytest~=7.1.1 + * Support pymongo 4.x + * Annotate `exceptions.py` and `clocks.py` + * azure-servicebus>=7.6.1 +- drop 0001-Support-redis-4.5.2.patch, + use-zoneinfo.patch, sqlalchemy-2.0.patch: upstream + ------------------------------------------------------------------- Sun Jun 11 13:48:39 UTC 2023 - ecsos @@ -16,14 +82,14 @@ Wed Apr 12 02:16:37 UTC 2023 - Steve Kowalik - Add patch use-zoneinfo.patch: * Use zoneinfo, rather than pytz. -- Switch BuildRequires to zoneinfo and timezone. +- Switch BuildRequires to zoneinfo and timezone. ------------------------------------------------------------------- Thu Feb 23 06:08:55 UTC 2023 - Steve Kowalik - Add patch support-pyro-5.patch: * Use Pyro5's compatability layer. -- Switch BuildRequires to Pyro5. +- Switch BuildRequires to Pyro5. ------------------------------------------------------------------- Mon Mar 21 08:16:03 UTC 2022 - Dirk Müller @@ -66,7 +132,7 @@ Mon Jan 3 14:16:01 UTC 2022 - Dirk Müller * prevent redis event loop stopping on ‘consumer: Cannot connect’ (#1477). * Bump redis version to >= 3.4.1. * try latest sqs dependencies to fix security warning. - * Tests & dependency updates + * Tests & dependency updates ------------------------------------------------------------------- Sat Nov 6 18:40:20 UTC 2021 - Dirk Müller @@ -74,16 +140,16 @@ Sat Nov 6 18:40:20 UTC 2021 - Dirk Müller - update to 5.2.0: * stop mentioning librabbitmq * Use ANY from unittest instead of case.mock - * fix flake8 in kombu/asynchronous/aws/connection.py - * Dont failfast when pypy3 tests fail - * Return empty list instead of InconsistencyError when exchange table is empty + * fix flake8 in kombu/asynchronous/aws/connection.py + * Dont failfast when pypy3 tests fail + * Return empty list instead of InconsistencyError when exchange table is empty ------------------------------------------------------------------- Wed Jun 30 09:16:13 UTC 2021 - Markéta Machová - Update to 5.1.0 * Add support for SQLAlchemy 1.4. - * prepare_accept_content() now raises SerializerNotInstalled instead of + * prepare_accept_content() now raises SerializerNotInstalled instead of KeyError. * Wheels are no longer universal. * Remove python2 compatibility code @@ -100,7 +166,7 @@ Mon Nov 16 01:50:08 UTC 2020 - Steve Kowalik * Adjusted the stable documentation's version in Sphinx's configuration since that was overlooked in the latest release * BREAKING CHANGE: Dropped support for Python 2 (#1232) - * Add an SQS transport option for custom botocore config (#1219) + * Add an SQS transport option for custom botocore config (#1219) ------------------------------------------------------------------- Thu Jul 9 06:20:03 UTC 2020 - Matthias Fehring @@ -178,14 +244,14 @@ Fri Dec 13 12:23:22 UTC 2019 - Matthias Fehring Tue Oct 8 08:39:47 UTC 2019 - Tomáš Chvátal - Update to 4.6.5: - - Revert _lookup api and correct redis implemetnation. + - Revert _lookup api and correct redis implemetnation. - Major overhaul of redis test cases by adding more full featured fakeredis module. - Add more test cases to boost coverage of kombu redis transport. - Refactor the producer consumer test cases to be based on original mocks and be passing - Fix lingering line length issue in test. - Sanitise url when include_password is false - Pinned pycurl to 7.43.0.2 as it is the latest build with wheels provided - - Bump py-amqp to 2.5.2 + - Bump py-amqp to 2.5.2 - Rebase python38.patch ------------------------------------------------------------------- @@ -194,7 +260,7 @@ Wed Sep 11 13:09:23 UTC 2019 - Tomáš Chvátal - Update to 4.6.4: - Use importlib-metadata instead of pkg_resources for better performance - Allow users to switch URLs while omitting the resource identifier (#1032) - - Don't stop receiving tasks on 503 SQS error. (#1064) + - Don't stop receiving tasks on 503 SQS error. (#1064) - Fix maybe declare (#1066) - Revert "Revert "Use SIMEMBERS instead of SMEMBERS to check for queue (Redis Broker) - Fix MongoDB backend to work properly with TTL (#1076) @@ -596,7 +662,7 @@ Tue Jan 21 13:48:22 UTC 2014 - dmueller@suse.com - update to 3.0.10: * Now depends on amqp 1.4.1. - * maybe_declare now raises a “recoverable connection error” + * maybe_declare now raises a “recoverable connection error” if the channel is disconnected * Redis: Consumer.cancel() is now thread safe. * Fixed “unhashable type” error on Python 3 @@ -665,7 +731,7 @@ Mon Sep 16 14:32:40 UTC 2013 - speilicke@suse.com ------------------------------------------------------------------- Tue Sep 3 08:08:47 UTC 2013 - dmueller@suse.com -- update to 2.5.14: +- update to 2.5.14: * safe_str did not work properly resulting in UnicodeDecodeError * Now depends on amqp 1.0.13 * Fixed typo in Django functional tests. @@ -1410,7 +1476,7 @@ Tue Jan 17 01:15:23 UTC 2012 - alexandre@exatati.com.br - Producer.publish now supports automatic retry. - Producer.publish now supports a declare keyword argument. Fixes - - Redis transport: Timeout was multiplied by 1000 seconds when + - Redis transport: Timeout was multiplied by 1000 seconds when using select for event I/O (Issue #86). ------------------------------------------------------------------- diff --git a/python-kombu.spec b/python-kombu.spec index 2a831f6..1bad549 100644 --- a/python-kombu.spec +++ b/python-kombu.spec @@ -1,7 +1,7 @@ # # spec file for package python-kombu # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-kombu -Version: 5.2.4 +Version: 5.3.5 Release: 0 Summary: AMQP Messaging Framework for Python License: BSD-3-Clause @@ -27,21 +27,17 @@ Source: https://files.pythonhosted.org/packages/source/k/kombu/kombu-%{v # PATCH-FIX-OPENSUSE Use Pyro4 compatibility for now, upstream should switch # for 5.3 Patch0: support-pyro-5.patch -# PATCH-FIX-UPSTREAM Use zoneinfo, rather than pytz gh#celery/kombu#1680 -Patch1: use-zoneinfo.patch -# PATCH-FIX-UPSTREAM gh#celery/kombu#1651 -Patch2: sqlalchemy-2.0.patch -# PATCH-FIX-UPSTREAM gh#celery/kombu#1735 -Patch3: 0001-Support-redis-4.5.2.patch BuildRequires: %{python_module Brotli >= 1.0.0} BuildRequires: %{python_module PyYAML >= 3.10} BuildRequires: %{python_module Pyro5} BuildRequires: %{python_module SQLAlchemy} BuildRequires: %{python_module amqp >= 5.0.9} +BuildRequires: %{python_module azure-identity >= 1.12.0} BuildRequires: %{python_module backports.zoneinfo if %python-base < 3.9} BuildRequires: %{python_module boto3 >= 1.9.12} BuildRequires: %{python_module cached-property} BuildRequires: %{python_module case >= 1.5.2} +BuildRequires: %{python_module hypothesis} BuildRequires: %{python_module importlib-metadata >= 0.18} BuildRequires: %{python_module msgpack} BuildRequires: %{python_module pycurl >= 7.43.0.2} diff --git a/sqlalchemy-2.0.patch b/sqlalchemy-2.0.patch deleted file mode 100644 index 424a528..0000000 --- a/sqlalchemy-2.0.patch +++ /dev/null @@ -1,54 +0,0 @@ -Index: kombu-5.2.4/kombu/transport/sqlalchemy/__init__.py -=================================================================== ---- kombu-5.2.4.orig/kombu/transport/sqlalchemy/__init__.py -+++ kombu-5.2.4/kombu/transport/sqlalchemy/__init__.py -@@ -58,7 +58,7 @@ import threading - from json import dumps, loads - from queue import Empty - --from sqlalchemy import create_engine -+from sqlalchemy import create_engine, text - from sqlalchemy.exc import OperationalError - from sqlalchemy.orm import sessionmaker - -@@ -164,7 +164,7 @@ class Channel(virtual.Channel): - def _get(self, queue): - obj = self._get_or_create(queue) - if self.session.bind.name == 'sqlite': -- self.session.execute('BEGIN IMMEDIATE TRANSACTION') -+ self.session.execute(text('BEGIN IMMEDIATE TRANSACTION')) - try: - msg = self.session.query(self.message_cls) \ - .with_for_update() \ -Index: kombu-5.2.4/kombu/transport/sqlalchemy/models.py -=================================================================== ---- kombu-5.2.4.orig/kombu/transport/sqlalchemy/models.py -+++ kombu-5.2.4/kombu/transport/sqlalchemy/models.py -@@ -4,7 +4,7 @@ import datetime - - from sqlalchemy import (Boolean, Column, DateTime, ForeignKey, Index, Integer, - Sequence, SmallInteger, String, Text) --from sqlalchemy.orm import relation -+from sqlalchemy.orm import relationship - from sqlalchemy.schema import MetaData - - try: -@@ -35,7 +35,7 @@ class Queue: - - @declared_attr - def messages(cls): -- return relation('Message', backref='queue', lazy='noload') -+ return relationship('Message', backref='queue', lazy='noload') - - - class Message: -Index: kombu-5.2.4/requirements/test.txt -=================================================================== ---- kombu-5.2.4.orig/requirements/test.txt -+++ kombu-5.2.4/requirements/test.txt -@@ -1,3 +1,4 @@ --pytest~=7.0.1 -+pytz -+pytest>=7.1.1 - pytest-sugar - Pyro4 diff --git a/use-zoneinfo.patch b/use-zoneinfo.patch deleted file mode 100644 index 3dfe32e..0000000 --- a/use-zoneinfo.patch +++ /dev/null @@ -1,87 +0,0 @@ -From d9e705aa1c42af24adf49ca1ef3ae339abc908dc Mon Sep 17 00:00:00 2001 -From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> -Date: Thu, 30 Mar 2023 09:32:24 -0500 -Subject: [PATCH 01/30] Main - ---- - kombu/asynchronous/timer.py | 10 +++++----- - requirements/test.txt | 2 +- - t/unit/utils/test_json.py | 7 +++++-- - 3 files changed, 11 insertions(+), 8 deletions(-) - -Index: kombu-5.2.4/kombu/asynchronous/timer.py -=================================================================== ---- kombu-5.2.4.orig/kombu/asynchronous/timer.py -+++ kombu-5.2.4/kombu/asynchronous/timer.py -@@ -13,23 +13,23 @@ from vine.utils import wraps - - from kombu.log import get_logger - --try: -- from pytz import utc --except ImportError: # pragma: no cover -- utc = None -+if sys.version_info >= (3, 9): -+ from zoneinfo import ZoneInfo -+else: -+ from backports.zoneinfo import ZoneInfo - - __all__ = ('Entry', 'Timer', 'to_timestamp') - - logger = get_logger(__name__) - - DEFAULT_MAX_INTERVAL = 2 --EPOCH = datetime.utcfromtimestamp(0).replace(tzinfo=utc) -+EPOCH = datetime.utcfromtimestamp(0).replace(tzinfo=ZoneInfo("UTC")) - IS_PYPY = hasattr(sys, 'pypy_version_info') - - scheduled = namedtuple('scheduled', ('eta', 'priority', 'entry')) - - --def to_timestamp(d, default_timezone=utc, time=monotonic): -+def to_timestamp(d, default_timezone=ZoneInfo("UTC"), time=monotonic): - """Convert datetime to timestamp. - - If d' is already a timestamp, then that will be used. -Index: kombu-5.2.4/requirements/test.txt -=================================================================== ---- kombu-5.2.4.orig/requirements/test.txt -+++ kombu-5.2.4/requirements/test.txt -@@ -1,4 +1,3 @@ --pytz>dev - pytest~=7.0.1 - pytest-sugar - Pyro4 -Index: kombu-5.2.4/t/unit/utils/test_json.py -=================================================================== ---- kombu-5.2.4.orig/t/unit/utils/test_json.py -+++ kombu-5.2.4/t/unit/utils/test_json.py -@@ -3,13 +3,18 @@ from datetime import datetime - from decimal import Decimal - from unittest.mock import MagicMock, Mock - from uuid import uuid4 -+import sys - - import pytest --import pytz - - from kombu.utils.encoding import str_to_bytes - from kombu.utils.json import _DecodeError, dumps, loads - -+if sys.version_info >= (3, 9): -+ from zoneinfo import ZoneInfo -+else: -+ from backports.zoneinfo import ZoneInfo -+ - - class Custom: - -@@ -24,7 +29,7 @@ class test_JSONEncoder: - - def test_datetime(self): - now = datetime.utcnow() -- now_utc = now.replace(tzinfo=pytz.utc) -+ now_utc = now.replace(tzinfo=ZoneInfo("UTC")) - stripped = datetime(*now.timetuple()[:3]) - serialized = loads(dumps({ - 'datetime': now,