Allow redis client 8 releases - #854
Merged
Merged
Conversation
Collaborator
Author
|
Blocked by redis/redis-vl-python#686 for now |
Collaborator
Author
|
Opened a PR upstream redis/redis-vl-python#695 |
The earlier constraint-only change still locked redis-py 7, and redis-py 8's default search replies are dicts. Parse both reply shapes and CI-test 6.x/7.x/8.x clients. Co-authored-by: Cursor <cursoragent@cursor.com>
Collaborator
Author
|
RedisVL 0.27.0 is out (https://github.com/redis/redis-vl-python/releases/tag/v0.27.0), so this is unblocked. The earlier revision only raised the redis upper bound. The lockfile still installed redis-py 7.1.0, and redis-py 8.1 defaults to dict-shaped This update:
|
Deep and embedded projections walked FT.SEARCH results as RESP2 lists, which raises KeyError when redis-py 8 returns dicts. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit daa4698. Configure here.
decode_responses=False leaves RESP3 map keys as bytes, so find and count saw no hits. Null field payloads are skipped, matching the RESP2 parser. Co-authored-by: Cursor <cursoragent@cursor.com>
1.1.0 is already on PyPI, and this redis-py 8 support needs its own release. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
RedisVL 0.27 unblocks redis-py 8, so this PR now actually installs and tests that client instead of only widening the declared range.
redisvlto>=0.27.0andredisto>=6.3.0,!=8.0.0,<9.0.0. redis-py 8.0.0 is excluded because of empty search results (redis-py #4107).FT.SEARCH/FT.INFO, including.find(),.count(), projections, and datetime schema checks.Supersedes #838. Unblocked by redis/redis-vl-python#695 (released in RedisVL v0.27.0).
How Has This Been Tested?
FT.SEARCH/FT.INFOshapes, includingHashModel.from_redisandJsonModel.from_redis.redis:8.4.0andredis/redis-stack:latest.Breaking Changes
Checklist
Note
Medium Risk
Changes sit on the core search/query parsing path and tighten dependency floors, but behavior is covered by dedicated reply-shape tests and a multi-version CI matrix.
Overview
redis-py 8 support (1.2.0) widens dependencies to
redis>=6.3.0,!=8.0.0,<9.0.0andredisvl>=0.27.0, bumps the lock to redis-py 8.1.0, and documents that 8.0.0 is excluded due to broken search results.A new
aredis_om/search_replylayer normalizes FT.SEARCH and FT.INFO replies for both legacy RESP2 list shapes (redis-py 6/7) and dict/RESP3 shapes (redis-py 8).FindQuery,from_redis, projections,count(), and datetime schema checks now call shared helpers instead of list-only parsing.CI runs the Unix test matrix against redis-py 6.x, 7.x, and 8.x (with
uv pippins andUV_NO_SYNCso the matrix version is not overwritten byuv sync). Unit and integration tests cover both reply formats plus deep/complex JSON projections.Reviewed by Cursor Bugbot for commit 6e6916f. Bugbot is set up for automated code reviews on this repo. Configure here.