Skip to content

Commit bdd058e

Browse files
authored
Merge branch 'main' into patch-2
2 parents 06145dc + 56c1129 commit bdd058e

28 files changed

+654
-136
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 5.5.0rc2
2+
current_version = 5.5.3
33
commit = True
44
tag = True
55
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(?P<releaselevel>[a-z]+)?

.github/workflows/python-package.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@ jobs:
5959
tox --verbose --verbose -e
6060
"${{ matrix.python-version }}-unit" -vv
6161
62+
- name: Upload test results to Codecov
63+
if: ${{ !cancelled() }} # Run even if tests fail
64+
uses: codecov/test-results-action@v1
65+
with:
66+
token: ${{ secrets.CODECOV_TOKEN }}
67+
6268
- uses: codecov/codecov-action@v5
6369
with:
6470
fail_ci_if_error: false # optional (default = false)

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ Gregory Haskins <[email protected]>
6060
Hank John <[email protected]>
6161
haridsv
6262
Hong Minhee <[email protected]>
63+
Hunter Fernandes <[email protected]>
6364
6465
Ian Struble <[email protected]>
6566
Ionel Maries Cristian <[email protected]>

Changelog.rst

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,191 @@
44
Change history
55
================
66

7+
.. _version-5.5.3:
8+
9+
5.5.3
10+
=====
11+
:release-date: 16 Apr, 2025
12+
:release-by: Tomer Nosrati
13+
14+
What's Changed
15+
~~~~~~~~~~~~~~
16+
17+
- Fix error of double normalization options from URI in mongodb transport (#2282)
18+
- Move use of typing_extensions into TYPE_CHECKING block (#2283)
19+
- Do not pin package tzdata anymore (#2274)
20+
- Typo in pools's documentation (#2285)
21+
- Prepare for release: v5.5.3 (#2288)
22+
23+
.. _version-5.5.2:
24+
25+
5.5.2
26+
=====
27+
:release-date: 31 Mar, 2025
28+
:release-by: Tomer Nosrati
29+
30+
What's Changed
31+
~~~~~~~~~~~~~~
32+
33+
- Bump tzdata from 2025.1 to 2025.2 (#2268)
34+
- Downgrad kafka version to make the CI green again (#2271)
35+
- Attempt to fix retry loop in `maybe_declare()` when broken connection (#2275)
36+
- Prepare for release: v5.5.2 (#2278)
37+
38+
.. _version-5.5.1:
39+
40+
5.5.1
41+
=====
42+
:release-date: 24 Mar, 2025
43+
:release-by: Tomer Nosrati
44+
45+
What's Changed
46+
~~~~~~~~~~~~~~
47+
48+
- Update trove classifier with missing python 3.13 (#2262)
49+
- Fix native_delayed_delivery for queue with explicit bindings (#2263)
50+
- SQS: Fix Query Protocol Content-Type header (#2266)
51+
- SQS: More Protocol Tests (#2267)
52+
- Prepare for release: v5.5.1 (#2270)
53+
54+
.. _version-5.5.0:
55+
56+
5.5.0
57+
=====
58+
:release-date: 13 Mar, 2025
59+
:release-by: Tomer Nosrati
60+
61+
Key Highlights
62+
~~~~~~~~~~~~~~
63+
64+
Native Delayed Delivery
65+
-----------------------
66+
67+
Official support to `RabbitMQ Delayed Delivery <https://docs.particular.net/transports/rabbitmq/delayed-delivery>`_,
68+
which is required to enable ETA tasks with quorum queues in Celery.
69+
70+
urllib3 instead of curl
71+
-----------------------
72+
73+
We can finally say goodbye to the :pypi:`pycurl` dependency and use :pypi:`urllib3` instead.
74+
75+
Transport: Google Pub/Sub
76+
-------------------------
77+
78+
New support for Google Pub/Sub as a transport broker.
79+
80+
What's Changed
81+
~~~~~~~~~~~~~~
82+
83+
- Pin tzdata to latest version 2024.2 (#2121)
84+
- Refactored CI (#2122)
85+
- Added unit tests to "tox -e parallel" environment (#2123)
86+
- Improve pre-commit checks and fix all new lint errors (#2124)
87+
- Removed codecov flags (#2126)
88+
- Pin pre-commit to latest version 3.8.0 (#2125)
89+
- Limit redis-py <5.1.0 (#2132)
90+
- Removed "on push" from the linter GitHub Actions workflow (#2133)
91+
- Bump pymongo from 4.9.1 to 4.10.0 (#2130)
92+
- Update pymongo to 4.10.1 (#2136)
93+
- fix(pytest): skip file-lock test on Windows (#2138)
94+
- Apply errback and callback when retry occurs (#2129)
95+
- Pin pre-commit to latest version 4.0.0 (Python 3.9+) (#2140)
96+
- Pin pre-commit to latest version 4.0.1 (#2144)
97+
- Add native delayed delivery API to kombu (#2128)
98+
- Add support for Google Pub/Sub as transport broker (#2147)
99+
- Update the transport options according to the retry policy (#2148)
100+
- Feature: urllib3 instead of curl (#2134)
101+
- Update mypy to 1.12.0 (#2149)
102+
- Prepare for (pre) release: v5.5.0rc1 (#2150)
103+
- Added missing changelog highlight for Google Pub/Sub (#2151)
104+
- Bump grpcio from 1.66.2 to 1.67.0 (#2158)
105+
- Fix: restrict google-cloud-pubsub version (#2160)
106+
- Update mypy to 1.12.1 (#2164)
107+
- Added a unit test that proves timeout is used when retry policy is specified (#2166)
108+
- Fix regression from #2148 (#2165)
109+
- Update google-cloud-pubsub requirement from <=2.20.3,>=2.18.4 to >=2.18.4,<=2.25.2 (#2168)
110+
- Revert "Update google-cloud-pubsub requirement from <=2.20.3,>=2.18.4 to >=2.18.4,<=2.25.2" (#2169)
111+
- Update mypy to 1.13.0 (#2172)
112+
- Fix: restrict google protobuf version (#2175)
113+
- Add support for Python 3.13 (#2052)
114+
- Apply retry policy to maybe_declare() (#2174)
115+
- Pin redis to >=4.5.2,!=4.5.5,!=5.0.2,<=5.2.0 (#2178)
116+
- Added confirm_timeout argument to publish() (#2167)
117+
- Prepare for (pre) release: v5.5.0rc2 (#2181)
118+
- Bump pytest-cov from 5.0.0 to 6.0.0 (#2183)
119+
- Add documentation for debug logs environment variables (#2186)
120+
- Add documentation for py-amqp transport options (#2187)
121+
- Bump codecov/codecov-action from 4 to 5 (#2189)
122+
- Update pytest to 8.3.4 (#2196)
123+
- Update redis requirement from !=4.5.5,!=5.0.2,<=5.2.0,>=4.5.2 to >=4.5.2,!=4.5.5,!=5.0.2,<=5.2.1 (#2203)
124+
- Close connections in case of an exception (#2201)
125+
- Bump pytest-freezer from 0.4.8 to 0.4.9 (#2205)
126+
- Bump mypy from 1.13.0 to 1.14.0 (#2211)
127+
- fix(sqs): don't crash on multiple predefined queues with aws sts session (#2224)
128+
- Bump mypy from 1.14.0 to 1.14.1 (#2215)
129+
- Bump tzdata from 2024.2 to 2025.1 (#2230)
130+
- fix: interpret the ssl_check_hostname as a boolean (#2229)
131+
- Revert "Resolving TypeError, during version unpacking " (#2225)
132+
- Bump flake8 from 7.1.1 to 7.1.2 (#2244)
133+
- Prepare for (pre) release: v5.5.0rc3 (#2247)
134+
- Bump pytest from 8.3.4 to 8.3.5 (#2253)
135+
- Update delayed_infra example for better clarity (#2252)
136+
- SQS: Support Async JSON SQS Protocol & Message Attributes (#2226)
137+
- Prepare for release: v5.5.0 (#2255)
138+
139+
Changes since 5.5.0rc3
140+
----------------------
141+
142+
- Bump pytest from 8.3.4 to 8.3.5 (#2253)
143+
- Update delayed_infra example for better clarity (#2252)
144+
- SQS: Support Async JSON SQS Protocol & Message Attributes (#2226)
145+
146+
.. _version-5.5.0rc3:
147+
148+
5.5.0rc3
149+
========
150+
:release-date: 20 Feb, 2025
151+
:release-by: Tomer Nosrati
152+
153+
Key Highlights
154+
~~~~~~~~~~~~~~
155+
156+
Native Delayed Delivery
157+
-----------------------
158+
159+
Official support to `RabbitMQ Delayed Delivery <https://docs.particular.net/transports/rabbitmq/delayed-delivery>`_,
160+
which is required to enable ETA tasks with quorum queues in Celery.
161+
162+
urllib3 instead of curl
163+
-----------------------
164+
165+
We can finally say goodbye to the :pypi:`pycurl` dependency and use :pypi:`urllib3` instead.
166+
167+
Transport: Google Pub/Sub
168+
-------------------------
169+
170+
New support for Google Pub/Sub as a transport broker.
171+
172+
What's Changed
173+
~~~~~~~~~~~~~~
174+
175+
- Bump pytest-cov from 5.0.0 to 6.0.0 (#2183)
176+
- Add documentation for debug logs environment variables (#2186)
177+
- Add documentation for py-amqp transport options (#2187)
178+
- Bump codecov/codecov-action from 4 to 5 (#2189)
179+
- Update pytest to 8.3.4 (#2196)
180+
- Update redis requirement from !=4.5.5,!=5.0.2,<=5.2.0,>=4.5.2 to >=4.5.2,!=4.5.5,!=5.0.2,<=5.2.1 (#2203)
181+
- Close connections in case of an exception (#2201)
182+
- Bump pytest-freezer from 0.4.8 to 0.4.9 (#2205)
183+
- Bump mypy from 1.13.0 to 1.14.0 (#2211)
184+
- fix(sqs): don't crash on multiple predefined queues with aws sts session (#2224)
185+
- Bump mypy from 1.14.0 to 1.14.1 (#2215)
186+
- Bump tzdata from 2024.2 to 2025.1 (#2230)
187+
- fix: interpret the ssl_check_hostname as a boolean (#2229)
188+
- Revert "Resolving TypeError, during version unpacking " (#2225)
189+
- Bump flake8 from 7.1.1 to 7.1.2 (#2244)
190+
- Prepare for (pre) release: v5.5.0rc3 (#2247)
191+
7192
.. _version-5.5.0rc2:
8193

9194
5.5.0rc2

README.rst

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44

55
|build-status| |coverage| |license| |wheel| |pyversion| |pyimp| |downloads|
66

7-
:Version: 5.5.0rc2
7+
:Version: 5.5.3
88
:Documentation: https://kombu.readthedocs.io/
99
:Download: https://pypi.org/project/kombu/
1010
:Source: https://github.com/celery/kombu/
11+
:DeepWiki: |deepwiki|
1112
:Keywords: messaging, amqp, rabbitmq, redis, mongodb, python, queue
1213

1314
About
@@ -350,9 +351,16 @@ file in the top distribution directory for the full license text.
350351
.. |pyimp| image:: https://img.shields.io/pypi/implementation/kombu.svg
351352
:alt: Support Python implementations.
352353
:target: https://pypi.org/project/kombu/
354+
353355
.. |downloads| image:: https://pepy.tech/badge/kombu
354356
:target: https://pepy.tech/project/kombu
355357

358+
.. |deepwiki| image:: https://devin.ai/assets/deepwiki-badge.png
359+
:alt: Ask http://DeepWiki.com
360+
:target: https://deepwiki.com/celery/kombu
361+
:width: 125px
362+
363+
356364
kombu as part of the Tidelift Subscription
357365
=======
358366

SECURITY.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22

33
## Supported Versions
44

5-
65
| Version | Supported |
76
| ------- | ------------------ |
8-
| 5.2.x | :white_check_mark: |
9-
| 5.0.x | :x: |
10-
| 5.1.x | :white_check_mark: |
7+
| 5.5.x | :white_check_mark: |
8+
| 5.4.x | :x: |
9+
| 5.3.x | :x: |
10+
| 5.2.x | :x: |
11+
| 5.1.x | :x: |
1112
| < 5.0 | :x: |
1213

1314
## Reporting a Vulnerability
1415

15-
Please report vulnerability issues directly to [email protected]
16-
17-
16+
Please reach out to [email protected] or [email protected] for reporting security concerns via email.

docs/includes/introduction.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
:Version: 5.5.0rc2
1+
:Version: 5.5.3
22
:Web: https://kombu.readthedocs.io/
33
:Download: https://pypi.org/project/kombu/
44
:Source: https://github.com/celery/kombu/

docs/userguide/pools.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,4 +189,4 @@ argument:
189189
190190
from kombu import pools
191191
192-
connections = pools.Connections(limit=pools.use_default_limit)
192+
connections = pools.Connections(limit=pools.use_global_limit)

examples/delayed_infra.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
from __future__ import annotations
22

3-
from examples.experimental.async_consume import queue
43
from kombu import Connection, Exchange, Queue
54
from kombu.transport.native_delayed_delivery import (
65
bind_queue_to_native_delayed_delivery_exchange, calculate_routing_key,
76
declare_native_delayed_delivery_exchanges_and_queues, level_name)
87

98
with Connection('amqp://guest:guest@localhost:5672//') as connection:
109
declare_native_delayed_delivery_exchanges_and_queues(connection, 'quorum')
10+
channel = connection.channel()
1111

12-
destination_exchange = Exchange(
13-
'destination', type='topic')
14-
destination_queue = Queue("destination", exchange=destination_exchange)
15-
bind_queue_to_native_delayed_delivery_exchange(connection, queue)
12+
destination_exchange = Exchange('destination_exchange', type='topic')
13+
queue = Queue("destination", exchange=destination_exchange, routing_key='destination_route')
14+
queue.declare(channel=connection.channel())
1615

17-
channel = connection.channel()
16+
bind_queue_to_native_delayed_delivery_exchange(connection, queue)
1817
with connection.Producer(channel=channel) as producer:
19-
routing_key = calculate_routing_key(30, 'destination')
18+
routing_key = calculate_routing_key(30, 'destination_route')
2019
producer.publish(
2120
"delayed msg",
2221
routing_key=routing_key,

kombu/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from collections import namedtuple
99
from typing import Any, cast
1010

11-
__version__ = '5.5.0rc2'
11+
__version__ = '5.5.3'
1212
__author__ = 'Ask Solem'
1313
__contact__ = '[email protected]'
1414
__homepage__ = 'https://kombu.readthedocs.io'

kombu/asynchronous/aws/connection.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,9 @@ def __init__(self, sqs_connection, http_client=None,
183183
super().__init__(sqs_connection, http_client,
184184
**http_client_params)
185185

186-
def make_request(self, operation, params_, path, verb, callback=None):
186+
def make_request(self, operation, params_, path, verb, callback=None, protocol_params=None):
187187
params = params_.copy()
188+
params.update((protocol_params or {}).get('query', {}))
188189
if operation:
189190
params['Action'] = operation
190191
signer = self.sqs_connection._request_signer
@@ -203,29 +204,33 @@ def make_request(self, operation, params_, path, verb, callback=None):
203204

204205
return self._mexe(prepared_request, callback=callback)
205206

206-
def get_list(self, operation, params, markers, path='/', parent=None, verb='POST', callback=None):
207+
def get_list(self, operation, params, markers, path='/', parent=None, verb='POST', callback=None,
208+
protocol_params=None):
207209
return self.make_request(
208210
operation, params, path, verb,
209211
callback=transform(
210212
self._on_list_ready, callback, parent or self, markers,
211213
operation
212214
),
215+
protocol_params=protocol_params,
213216
)
214217

215-
def get_object(self, operation, params, path='/', parent=None, verb='GET', callback=None):
218+
def get_object(self, operation, params, path='/', parent=None, verb='GET', callback=None, protocol_params=None):
216219
return self.make_request(
217220
operation, params, path, verb,
218221
callback=transform(
219222
self._on_obj_ready, callback, parent or self, operation
220223
),
224+
protocol_params=protocol_params,
221225
)
222226

223-
def get_status(self, operation, params, path='/', parent=None, verb='GET', callback=None):
227+
def get_status(self, operation, params, path='/', parent=None, verb='GET', callback=None, protocol_params=None):
224228
return self.make_request(
225229
operation, params, path, verb,
226230
callback=transform(
227231
self._on_status_ready, callback, parent or self, operation
228232
),
233+
protocol_params=protocol_params,
229234
)
230235

231236
def _on_list_ready(self, parent, markers, operation, response):

0 commit comments

Comments
 (0)