Releases: redis/redis-py
Version 4.3.5
Changes
This is a maintenance release of redis-py, prior to the release of 4.4.0. This release contains both bug fixes, and features, keeping pace with the release of redis-stack capabilities.
🚀 New Features
- Add support for TIMESERIES 1.8 (#2296)
- Graph - add counters for removed labels and properties (#2292)
- Add support for TDIGEST.QUANTILE extensions (#2317)
- Add TDIGEST.TRIMMED_MEAN (#2300)
- Add support for async GRAPH module (#2273)
- Support TDIGEST.MERGESTORE and make compression optional on TDIGEST.CREATE (#2319)
- Adding reserve as an alias for create, so that we have BF.RESERVE and CF.RESERVE accuratenly supported (#2331)
🐛 Bug Fixes
- Fix async connection.is_connected to return a boolean value (#2278)
- Fix: workaround asyncio bug on connection reset by peer (#2259)
- Fix crash: key expire while search (#2270)
- Async cluster: fix concurrent pipeline (#2280)
- Fix async SEARCH pipeline (#2316)
- Fix KeyError in async cluster - initialize before execute multi key commands (#2439)
🧰 Maintenance
- Supply chain risk reduction: remove dependency on library named deprecated (#2386)
- Search test - Ignore order of the items in the response (#2322)
- Fix GRAPH.LIST & TDIGEST.QUANTILE tests (#2335)
- Fix TimeSeries range aggregation (twa) tests (#2358)
- Mark TOPK.COUNT as deprecated (#2363)
Contributors
We'd like to thank all the contributors who worked on this release!
@sileht, @utkarshgupta137, @dvora-h, @akx, @bodevone, @chayim, @DvirDukhan
4.4.0rc4
Changes
🚀 New Features
- CredentialsProvider class added to support password rotation (#2261)
- Enable AsyncIO cluster mode lock (#2446)
🐛 Bug Fixes
- Failover handling improvements for RedisCluster and Async RedisCluster (#2377)
- Improved response parsing options handler for special cases (#2302)
Contributors
We'd like to thank all the contributors who worked on this release!
4.4.0rc3
Changes
🧪 Experimental Features
- Remove
weight
parameter fromTDIGEST.ADD
and fixed tests (#2408)
🚀 New Features
- Add
to_string
method for GeoValue (#2404)
🐛 Bug Fixes
- Remove default None value from LMPOP direction argument (#2438)
- Fix KeyError in async cluster - initialize before execute multi key commands (#2439)
- Fix catch OSError on asyncio (#2412)
🧰 Maintenance
- Remove the superflous SocketBuffer from asyncio PythonParser (#2418)
- Fix docs for password protected socket access (#2378)
- Supply chain risk reduction: remove dependency on library named
deprecated
(#2386) - Tidy up asyncio examples. (#2431)
- Docs: fix redismodules.rst (#2429)
- Fix test
test_get_moveable_keys
(#2411) - Fixing RedisBloom tests for TDIGEST.RANK results (#2430)
- Deprecate
add_doccument
(FT.ADD) (#2425) - Updating the docker image for the module cluster (#2426)
- Release drafter formatting improvement: titles (#2422)
- Fix
TIMESERIES
(round floats) andJSON
tests (#2421) - Fixing invalid vulnerability report (#2424)
- Support M1 development with updated dockers (#2409)
Contributors
We'd like to thank all the contributors who worked on this release!
@AnneYang720, @Dreamsorcerer, @aandrukhovich, @akx, @ashikshezan, @chayim, @dvora-h, @hofrob, @hyeongguen-song, @kristjanvalur and @sobolevn
4.4.0rc2
Changes
Breaking Changes
- Catch
Exception
and notBaseException
in theConnection
(#2104)
🧪 Experimental Features
- Add support for new TDIGEST (RedisBloom 2.4) features (#2392)
- Enhanced TDIGEST.CREATE support (#2348)
🚀 New Features
- Simplify async timeouts and allowing
timeout=None
inPubSub.get_message()
to wait forever (#2295) - Add
nowait
flag toasyncio.Connection.disconnect()
(#2356) - Dev/no lock (#2308)
- Adding reserve as an alias for create, so that BF.RESERVE and CF.RESERVE accurately supported (#2331)
- Add support for BITFIELD_RO (#2340)
🐛 Bug Fixes
- Catch
Exception
and notBaseException
in theConnection
(#2104) - FT.SEARCH: Fixing aggregation request argument for LIMIT (#2393)
- Change return type of parse_boolean from int to bool (#2364)
- WRONGPASS response doesn't raise AuthenticationError exception (#2329)
- Fix type hint annotations of expire time (#2361)
- Increased strictness of redis url scheme parsing (#2343)
🧰 Maintenance
- Simplify async timeouts and allowing
timeout=None
inPubSub.get_message()
to wait forever (#2295) - Dev/no can read (#2360)
- Update VecSim search example to highlight dialect (#2402)
- Update GitHub Actions versions (#2389)
- Support Hiredis >= 1.x only (remove
packaging
dependency) (#2385) - Reinstate Codecov in CI (#2394)
- Adding support for readable test results in CI (#2381)
- Fix readme links (#2368)
- Fixing async test for module list (#2367)
- Mark
TOPK.COUNT
as deprecated (#2363) - Document Redis(single_connection_client) (#2327)
- Update LICENSE (#2362)
- Fix TimeSeries range aggregation (twa) tests (#2358)
- Fix documentation typos (#2341)
- Adding dependency vulnerability scanning to the CI process (#2332)
- Fix GRAPH.LIST & TDIGEST.QUANTILE tests (#2335)
- GitHub workflow update" trailofbits/gh-action-pip-audit is now pypa/gh-action-pip-audit (#2380)
Contributors
We'd like to thank all the contributors who worked on this release!
@akx, @bodevone, @chayim, @dvora-h, @gkorland, @graeme44, @kristjanvalur, @leven-cn, @lucacillario, @n8wb, @povilasb, @vanschelven and @woodruffw
4.4.0rc1
Changes
Breaking Changes
- Change
dropindex()
function to useFT.DROPINDEX
(insteadFT.DROP
) (#2315) - Drop python 3.6 support (#2306)
- Async cluster: fix max_connections/ssl & improve args (#2217)
- Remove verbose logging from
redis-py/redis/cluster.py
(#2238) - Drop python 3.6 support (#2306)
🧪 Experimental Features
- Add support for WITHSUFFIXTRIE to FT.CREATE (#2324)
🚀 New Features
- Add TDIGEST.TRIMMED_MEAN (#2300)
- Support TDIGEST.MERGESTORE and make compression optional on TDIGEST.CREATE (#2319)
- Add support for
TDIGEST.QUANTILE
extensions (#2317) - Add support for async GRAPH module (#2273)
- Add support for TIMESERIES 1.8 (#2296)
- Use retry mechanism in async version of Connection objects (#2271)
- Graph - add counters for removed labels and properties (#2292)
🐛 Bug Fixes
- Fix async SEARCH pipeline (#2316)
- Change
dropindex()
to useFT.DROPINDEX
(insteadFT.DROP
) (#2315) - Automatically reconnect pubsub when reading messages in blocking mode (#2281)
- Async cluster: fix max_connections/ssl & improve args (#2217)
- Async cluster: fix concurrent pipeline (#2280)
- Fix crash: key expire while search (#2270)
- Fix: workaround asyncio bug on connection reset by peer (#2259)
- Fix async connection.is_connected to return a boolean value (#2278)
- ClusterPipeline Doesn't Handle ConnectionError for Dead Hosts (#2225)
🧰 Maintenance
- Adding experimental features, as a release option (#2323)
- Search test - Ignore order of the items in the response (#2322)
- Replace
ensure_future
withcreate_task
(#2311) - Fix typo in README.md (#2314)
- Remove python2-only
__nonzero__
method fromcluster.py
(#2313) - Fix typing on smembers command (#2312)
- drop invocation of redismod_cluster docker (#2307)
- Cleaning up the readme and moving docs into readthedocs (#2291)
- Fix warnings and resource usage problems in asyncio unittests (#2258)
- Doc add timeseries example (#2267)
- Fix:
start_id
type forXAUTOCLAIM
(#2257) - redis stream example (#2269)
- Remove verbose logging from
redis-py/redis/cluster.py
(#2238) - Docs: Fix a few typos (#2274)
- Pypy 3.8 CI support (#2266)
- Fix timezone handling for datetime to unixtime conversions (#2213)
Contributors
We'd like to thank all the contributors who worked on this release!
@DvirDukhan, @GaMeRaM, @Iglesys347, @aandrukhovich, @agusdmb, @bodevone, @chayim, @dvora-h, @grippy, @joekohlsdorf, @kristjanvalur, @nialdaly, @pedrofrazao, @sileht, @sobolevn, @szumka, @timgates42 and @utkarshgupta137
Version 4.3.4
Changes
🔥 Breaking Changes
- Fix backward compatibility from 4.3.2 in Lock.acquire() (#2254)
- Fix
XAUTOCLAIM
to return the full response, instead of only keys 2+ (#2252)
🚀 New Features
🐛 Bug Fixes
- Fix retries in async mode (#2180)
- Async cluster: fix simultaneous initialize (#2231)
- Uppercased commands in CommandsParser.get_keys (#2236)
🧰 Maintenance
- Late eval of the skip condition in async tests(#2248, #2253)
- Reuse the old nodes' connections when a cluster topology refresh is being done (#2235)
- Docs: add pipeline examples (#2240)
- Correct retention_msecs value (#2232)
- Cluster: use pipeline to execute split commands (#2230)
- Docs: Add a note about client_setname and client_name difference (#2247)
Contributors
We'd like to thank all the contributors who worked on this release!
@Iglesys347, @barshaul, @dvora-h, @earthgecko, @elemoine, @falk-h, @kristjanvalur, @psrok1 and @utkarshgupta137
Version 4.3.3
Version 4.3.2
Changes
🚀 New Features
- SHUTDOWN - add support for the new NOW, FORCE and ABORT modifiers (#2150)
- Adding pipeline support for async cluster (#2199)
- Support CF.MEXISTS + Clean bf/commands.py (#2184)
- Extending query_params for FT.PROFILE (#2198)
- Implementing ClusterPipeline Lock (#2190)
🐛 Bug Fixes
- Set default response_callbacks to redis.asyncio.cluster.ClusterNode (#2201)
- Add default None for maxlen at xtrim command (#2188)
🧰 Maintenance
- Async cluster: add/update typing (#2195)
- Changed list type to single element type (#2203)
- Made sync lock consistent and added types to it (#2137)
- Async cluster: optimisations (#2205)
- Fix typos in README (#2206)
- Fix modules links to https://redis.io/commands/ (#2185)
Contributors
We'd like to thank all the contributors who worked on this release!
@Avital-Fine, @Olegt0rr, @WisdomPill, @dvora-h, @grippy, @mfgnik, @rapidia, @ryanrussell and @utkarshgupta137
Version 4.3.1
Version 4.3.0
Changes
🔥 Breaking Changes
- Replace OSError exceptions from
can_read
withredis.ConnectionError
(#2140) - Updated FUNCTION LOAD changes (from release 7.0 rc3 to support redis 7.0 final) (#2139)
🚀 New Features
- Get command keys for subcommands (#2170)
- Add support for CLUSTER SHARDS (#2151)
- Add support for COMMAND LIST (#2149)
- Add Async RedisCluster (#2099)
- ACL SETUSER - add selectors and key based permissions (#2161)
- Support for redis 7 streams features (#2157)
- Async Connection: Allow
PubSub.run()
without previoussubscribe()
(#2148) - Implemented LATENCY HISTOGRAM by always throwing NotImplementedError (#2147)
- Add async supoort for SEARCH commands (#2096)
Retry()
: Support negativeretries
value (#2110)- Add support for MODULE LOADEX (#2146)
- INFO - add support for taking multiple section arguments (#2145)
- CONFIG SET - add the ability to set multiple parameters in one call (#2143)
- CONFIG GET - add the ability to pass multiple pattern parameters in one call (#2142)
- Add support for COMMAND GETKEYSANDFLAGS (#2141)
- Support CASESENSITIVE for TAG fields (#2112)
🐛 Bug Fixes
- Rename 'update_supported_erros' to 'update_supported_errors' in Retry module (#2144)
- Fix execute_command() determining nodes error when no key command (#2097)
- Fix incorrect return statement in auth (#2086) (#2092)
🧰 Maintenance
- Add unittest for PubSub.connect() (#2167)
- Fix incorrect return annotation in asyncio.lock (#2155)
- Minor cleanups in commands/cluster.py (#2094)
- Update xtrim type annotation (#2093)
- Async tests for redis commands, json, bloom, timeseries (#2087)
- Fixed typing in getex command (#2088)
Contributors
We'd like to thank all the contributors who worked on this release!
@Andrew-Chen-Wang, @Ankhas, @Avital-Fine, @JelleZijlstra, @chayim, @dvora-h, @enjoy-binbin, @kamyabzad, @kristjanvalur, @richli, @suxb201 and @utkarshgupta137