Sourced from redis's releases.
4.5.3
Changes
Update urgency: HIGH: There is a critical bug that may affect a subset of users. Upgrade!
ð Bug Fixes
4.5.2
Changes
ð New Features
- Introduce AbstractConnection so that UnixDomainSocketConnection can call super().init (#2588)
- Added queue_class to REDIS_ALLOWED_KEYS (#2577)
- Made search document subscriptable (#2615)
- Sped up the protocol parsing (#2596)
ð Bug Fixes
- Fix behaviour of async PythonParser to match RedisParser as for issue #2349 (#2582)
- Replace async_timeout by asyncio.timeout (#2602)
- Update json().arrindex() default values (#2611)
𧰠Maintenance
- Coverage for pypy-3.9 (#2608)
- Developer Experience: Adding redis version compatibility details to the README (#2621)
- Remove redundant assignment to RedisCluster.nodes_manager. (#2620)
- Developer Experience: [types] update return type of smismember to list[int] (#2617)
- Developer Experience: [docs] ConnectionPool SSL example (#2605)
- Developer Experience: Fixed CredentialsProvider examples (#2587)
- Developer Experience: Update README to make pip install copy-pastable on zsh (#2584)
- Developer Experience: Fix for
lpop
andrpop
return typing (#2590)Contributors
We'd like to thank all the contributors who worked on this release!
@âCrimsonGlory
,@âGaltozzy
,@âaksinha334
,@âbarshaul
,@âchayim
,@âdavemcphee
,@âdvora-h
,@âkristjanvalur
,@âryin1
,@âsileht
,@âthebarbershop
,@âuglide
,@âwoutdenolf
and@âzakaf
4.5.1
Changes
ð Bug Fixes
Contributors
We'd like to thank all the contributors who worked on this release!
... (truncated)
Sourced from redis's changelog.
* Allow data to drain from async PythonParser when reading during a disconnect() * Use asyncio.timeout() instead of async_timeout.timeout() for python >= 3.11 ([#2602](https://github.com/redis/redis-py/issues/2602)) * Add test and fix async HiredisParser when reading during a disconnect() ([#2349](https://github.com/redis/redis-py/issues/2349)) * Use hiredis-py pack_command if available. * Support `.unlink()` in ClusterPipeline * Simplify synchronous SocketBuffer state management * Fix string cleanse in Redis Graph * Make PythonParser resumable in case of error ([#2510](https://github.com/redis/redis-py/issues/2510)) * Add `timeout=None` in `SentinelConnectionManager.read_response` * Documentation fix: password protected socket connection ([#2374](https://github.com/redis/redis-py/issues/2374)) * Allow `timeout=None` in `PubSub.get_message()` to wait forever * add `nowait` flag to `asyncio.Connection.disconnect()` * Update README.md links * Fix timezone handling for datetime to unixtime conversions * Fix start_id type for XAUTOCLAIM * Remove verbose logging from cluster.py * Add retry mechanism to async version of Connection * Compare commands case-insensitively in the asyncio command parser * Allow negative `retries` for `Retry` class to retry forever * Add `items` parameter to `hset` signature * Create codeql-analysis.yml ([#1988](https://github.com/redis/redis-py/issues/1988)). Thanks @chayim * Add limited support for Lua scripting with RedisCluster * Implement `.lock()` method on RedisCluster * Fix cursor returned by SCAN for RedisCluster & change default target to PRIMARIES * Fix scan_iter for RedisCluster * Remove verbose logging when initializing ClusterPubSub, ClusterPipeline or RedisCluster * Fix broken connection writer lock-up for asyncio ([#2065](https://github.com/redis/redis-py/issues/2065)) * Fix auth bug when provided with no username ([#2086](https://github.com/redis/redis-py/issues/2086)) * Fix missing ClusterPipeline._lock ([#2189](https://github.com/redis/redis-py/issues/2189)) * Added dynaminc_startup_nodes configuration to RedisCluster * Fix reusing the old nodes' connections when cluster topology refresh is being done * Fix RedisCluster to immediately raise AuthenticationError without a retry * ClusterPipeline Doesn't Handle ConnectionError for Dead Hosts ([#2225](https://github.com/redis/redis-py/issues/2225)) * Remove compatibility code for old versions of Hiredis, drop Packaging dependency * The `deprecated` library is no longer a dependency * Failover handling improvements for RedisCluster and Async RedisCluster ([#2377](https://github.com/redis/redis-py/issues/2377)) * Fixed "cannot pickle '_thread.lock' object" bug ([#2354](https://github.com/redis/redis-py/issues/2354), [#2297](https://github.com/redis/redis-py/issues/2297)) * Added CredentialsProvider class to support password rotation * Enable Lock for asyncio cluster mode * Fix Sentinel.execute_command doesn't execute across the entire sentinel cluster bug ([#2458](https://github.com/redis/redis-py/issues/2458)) * Added a replacement for the default cluster node in the event of failure ([#2463](https://github.com/redis/redis-py/issues/2463)) * Fix for Unhandled exception related to self.host with unix socket ([#2496](https://github.com/redis/redis-py/issues/2496))
... (truncated)
66a4d6b
AsyncIO Race Condition Fix (#2641)318b114
Version 4.5.2 (#2627)1b2f408
Fix behaviour of async PythonParser to match RedisParser as for issue #2349
(...7d474f9
introduce AbstractConnection so that UnixDomainSocketConnection can call
supe...c871723
pypy-3.9 CI (#2608)d63313b
add queue_class to REDIS_ALLOWED_KEYS (#2577)c61eeb2
Adding supported redis/library details (#2621)25e85e5
fix: replace async_timeout by asyncio.timeout (#2602)91ab12a
Remove redundant assignment. (#2620)8bfd492
Making search document subscriptable (#2615)