Skip to content

Commit 9f212b0

Browse files
chore(deps): bump redis from 7.4.0 to 8.0.0 in /chainguard (#385)
Bumps [redis](https://github.com/redis/redis-py) from 7.4.0 to 8.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/redis/redis-py/releases">redis's releases</a>.</em></p> <blockquote> <h2>8.0.0</h2> <h1>Changes</h1> <h2>🚀 Highlights</h2> <h3>Async Cluster PubSub</h3> <p>This release introduces full <strong>asyncio Cluster PubSub support</strong>, bringing shard-channel capabilities (<code>SSUBSCRIBE</code>, <code>SUNSUBSCRIBE</code>, <code>SPUBLISH</code>) to the async <code>RedisCluster</code> client. The new <code>ClusterPubSub</code> class in <code>redis.asyncio.cluster</code> automatically routes shard-channel subscriptions to the correct cluster node based on key-slot hashing, manages per-node PubSub connections, and supports round-robin message retrieval across nodes. Users can create a cluster pubsub instance via <code>RedisCluster.pubsub()</code> and use <code>ssubscribe()</code>, <code>sunsubscribe()</code>, and <code>get_sharded_message()</code> just as they would with the sync cluster client.</p> <h3>Keyspace and subkey notifications</h3> <p>Redis Keyspace Notifications are now supported for standalone and cluster deployments in both sync and async modes. New classes — <code>KeyspaceNotifications</code>, <code>ClusterKeyspaceNotifications</code>, <code>AsyncKeyspaceNotifications</code>, and <code>AsyncClusterKeyspaceNotifications</code> — provide a high-level API for keyspace/keyevent subscriptions and subkey notification families: <code>subkeyspace</code>, <code>subkeyevent</code>, <code>subkeyspaceitem</code>, and <code>subkeyspaceevent</code>. Convenience methods like <code>subscribe_keyspace()</code>, <code>subscribe_keyevent()</code>, <code>subscribe_subkeyspace()</code>, <code>subscribe_subkeyevent()</code>, <code>subscribe_subkeyspaceitem()</code>, and <code>subscribe_subkeyspaceevent()</code> simplify common patterns, with channel classes for both key and subkey channels.</p> <p>In cluster mode, subscriptions are managed across primary nodes because each node emits notifications only for keys it owns, with built-in topology-change handling. Sync <code>run_in_thread()</code> and async <code>listen()</code> workflows are supported.</p> <h3>Redis Array commands(<a href="https://redis.io/docs/latest/develop/data-types/arrays/">https://redis.io/docs/latest/develop/data-types/arrays/</a>)</h3> <p>redis-py now supports <a href="https://redis.io/docs/latest/develop/data-types/arrays/">Redis Arrays</a>, a preview Redis data type for sparse, index-addressable sequences of strings. New <code>AR*</code> command helpers cover indexed reads/writes, range scans, deletion, cursor-based insertion, ring-buffer writes, metadata, text search, and aggregation, including <code>ARGET</code>, <code>ARSET</code>, <code>ARMGET</code>, <code>ARMSET</code>, <code>ARSCAN</code>, <code>ARGREP</code>, <code>ARRING</code>, and <code>AROP</code>.</p> <h3>Type Hints Improvements (breaking changes)</h3> <p>The <code>@overload</code> pattern has been applied systematically across <strong>core commands</strong> (<code>core.py</code>), <strong>VectorSet commands</strong>, and <strong>module commands</strong> (Search, JSON, TimeSeries, Bloom filters) to provide distinct return types for sync and async clients. Previously, methods returned a combined <code>ResponseT</code> (i.e., <code>Union[Awaitable[Any], Any]</code>), which caused static analysis tools like mypy and Pyright to flag false positives. Now, sync clients see concrete return types (e.g., <code>int</code>, <code>bool</code>, <code>list[str]</code>) while async clients see <code>Awaitable[...]</code> wrappers. This is a <strong>breaking change for type-checking only</strong>—runtime behavior is unchanged, but code relying on the old union return types in type annotations may need updates. Two new protocol types, <code>SyncClientProtocol</code> and <code>AsyncClientProtocol</code>, are used in overload signatures to enable this distinction.</p> <h3>RESP3 by default with opt-in unified responses</h3> <p>redis-py 8.0.0 now uses RESP3 on the wire by default while preserving legacy RESP2-compatible Python response shapes for existing applications (<a href="https://redirect.github.com/redis/redis-py/issues/4052">#4052</a>). Protocol-independent unified response shapes are available by setting <code>legacy_responses=False</code>, so affected commands return the same Python structure with RESP2 or RESP3.</p> <p>Use <code>protocol=2</code> to force RESP2 on the wire, <code>protocol=3</code> to opt into native RESP3 response shapes, or <code>legacy_responses=False</code> to migrate to unified responses. See <a href="https://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst"><code>https://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst</code></a> and <a href="https://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md"><code>https://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md</code></a> for the affected commands and migration details.</p> <h3>Connection and retry defaults</h3> <p>Default connection settings were updated: <code>socket_timeout</code> and <code>socket_connect_timeout</code> now default to 5 seconds, TCP keepalive is enabled by default, socket reads use a 32 KB buffer, connection pools default to <code>max_connections=100</code>, and retry defaults now use 10 attempts with exponential jitter backoff.</p> <p>Note: <code>socket_timeout</code> can affect blocking commands such as <code>BLPOP</code>/<code>BRPOP</code>; if a command blocks longer than the client socket timeout, it may raise <code>TimeoutError</code> before the command timeout elapses (<a href="https://redirect.github.com/redis/redis-py/issues/2807">#2807</a>).</p> <h2>🧪 Experimental Features</h2> <ul> <li>Added support for new array commands (<a href="https://redirect.github.com/redis/redis-py/issues/4055">#4055</a>)</li> </ul> <h2>🚀 New Features</h2> <ul> <li>Support Cluster PubSub in asyncio (<a href="https://redirect.github.com/redis/redis-py/issues/3736">#3736</a>)</li> <li>Add Redis Keyspace Notifications Support for Redis Cluster (<a href="https://redirect.github.com/redis/redis-py/issues/3962">#3962</a>)</li> <li>Add random load balancing strategy which allows for use of the primary (<a href="https://redirect.github.com/redis/redis-py/issues/4027">#4027</a>)</li> <li>Add FPHA (floating-point homogeneous array) arg support to JSON.SET (<a href="https://redirect.github.com/redis/redis-py/issues/4011">#4011</a>)</li> <li>Added custom Claude command + XNACK command support (<a href="https://redirect.github.com/redis/redis-py/issues/4030">#4030</a>)</li> <li>Adding Time Series Multiple Aggregators support (<a href="https://redirect.github.com/redis/redis-py/issues/4035">#4035</a>)</li> <li>Adding support for new COUNT aggregator for some sorted set commands - ZINTER, ZINTERSTORE, ZUNION, ZUNIONSTORE (<a href="https://redirect.github.com/redis/redis-py/issues/4034">#4034</a>)</li> <li>Adding support for new INCREX command (<a href="https://redirect.github.com/redis/redis-py/issues/4067">#4067</a> <a href="https://redirect.github.com/redis/redis-py/issues/4077">#4077</a>)</li> <li>Add support for PubSub subscriptions with binary channel names and handlers (<a href="https://redirect.github.com/redis/redis-py/issues/4068">#4068</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/redis/redis-py/commit/733f80ec633d6a772a6e1ccb1c0cca6fc1afb4b6"><code>733f80e</code></a> Updates in default connection and retry settings (<a href="https://redirect.github.com/redis/redis-py/issues/4082">#4082</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/a68a16c296591e902d0c749d31781550048f280f"><code>a68a16c</code></a> Updating Redis supported versions in README.md and lib version to 8.0.0</li> <li><a href="https://github.com/redis/redis-py/commit/43a41d3d2956aa69eb0041655067ffaaaf23c6c3"><code>43a41d3</code></a> Updating INCREX command arg - SATURATE now controls overflow behaviour (<a href="https://redirect.github.com/redis/redis-py/issues/4077">#4077</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/1496deba3801605cb123cb1b67adda50e85cd1e5"><code>1496deb</code></a> Preserve explicit None for client metadata config (<a href="https://redirect.github.com/redis/redis-py/issues/4081">#4081</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/57dc08c550f82086afeaa68a7cd7e5df356f7217"><code>57dc08c</code></a> Avoid zero-timeout async reads in hiredis connections readiness checks and re...</li> <li><a href="https://github.com/redis/redis-py/commit/cd54ddd25aa307dc7f05bc0e4387cfc294c0a4c8"><code>cd54ddd</code></a> fix(typing): correct type annotation for XReadResponse (<a href="https://redirect.github.com/redis/redis-py/issues/4046">#4046</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/ab2d41fcf0f9477ac788822d7c430004076a27f2"><code>ab2d41f</code></a> Add support for PubSub subscriptions with binary channel names and handlers (...</li> <li><a href="https://github.com/redis/redis-py/commit/ef24dc99b6f2aa9507f19aa4ce4be37745ed6c77"><code>ef24dc9</code></a> Randomize cluster startup node order during topology refresh (<a href="https://redirect.github.com/redis/redis-py/issues/4060">#4060</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/b604015aeb5abce4b576f9dc54ffe30a3f1ba8c6"><code>b604015</code></a> Add CLAUDE.md and /sync-claude-md skill for managing (<a href="https://redirect.github.com/redis/redis-py/issues/4066">#4066</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/2b8b4fcc9986fbc1f188cc6a355d12eec814ee90"><code>2b8b4fc</code></a> Fix flaky tests (<a href="https://redirect.github.com/redis/redis-py/issues/4071">#4071</a>)</li> <li>Additional commits viewable in <a href="https://github.com/redis/redis-py/compare/v7.4.0...v8.0.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=redis&package-manager=pip&previous-version=7.4.0&new-version=8.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent 94f9fe0 commit 9f212b0

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

chainguard/requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Flask==3.1.3 \
22
--hash=sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb \
33
--hash=sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c
4-
redis==7.4.0 \
5-
--hash=sha256:64a6ea7bf567ad43c964d2c30d82853f8df927c5c9017766c55a1d1ed95d18ad \
6-
--hash=sha256:a9c74a5c893a5ef8455a5adb793a31bb70feb821c86eccb62eebef5a19c429ec
4+
redis==8.0.0 \
5+
--hash=sha256:a00c5355432051ac14e593b8b197fc76c887ee12d55a0984f69328a1115fdc49 \
6+
--hash=sha256:c938c18338585009f0bc310f4c7e4e4b4d37639356c4ac072cedf3af570c8dc7
77
prometheus-client==0.25.0 \
88
--hash=sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28 \
99
--hash=sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1

0 commit comments

Comments
 (0)