Chore(deps): Bump redis from 7.4.0 to 8.1.0 - #1232
Conversation
foxpatch-aleph
left a comment
There was a problem hiding this comment.
The redis 7.4.0 → 8.1.0 bump is safe at runtime: the codebase only uses stable core async commands (get, set, incr, decr, smembers, sadd, srem, sismember, delete, aclose) that are all present in redis 8.1.0, the hiredis extra resolves correctly (requires >=3.2.0, 3.4.0 available), and aiocache 0.12.3 only requires redis>=4.2.0. However, the linting environment still depends on types-redis (lines 167 and 170), which provides stubs for redis 4.x and is now outdated since redis 8.x ships its own inline type annotations via py.typed. Having both types-redis and redis 8.x installed may cause mypy to use stale stubs or produce conflicting type information. The types-redis entries should be removed in a follow-up or as part of this PR. Note also that types-redis is listed twice (line 167 as >=4.6 and line 170 unpinned) — a pre-existing duplicate.
pyproject.toml (line 167): Now that redis 8.x ships its own inline type annotations (py.typed marker), types-redis is outdated and may conflict with redis's bundled types during mypy. Consider removing both types-redis entries (lines 167 and 170).
pyproject.toml (line 170): Duplicate of the types-redis entry on line 167. Both should be removed since redis 8.x provides its own type stubs.
b04b3dd to
179e13a
Compare
foxpatch-aleph
left a comment
There was a problem hiding this comment.
This is a straightforward dependency bump from redis 7.4.0 to 8.1.0 (a major version jump). The codebase only uses redis.asyncio.Redis with basic commands (get, set, incr, decr, smembers, sadd, srem, sismember, delete, aclose), all of which are confirmed present and API-compatible in 8.1.0. The constructor signature remains compatible (host/port as keyword args). The hiredis extra requirement (>=3.2.0) is satisfiable with available versions. One concern: the linting extras still list types-redis (stubs for redis 4.x) even though redis 8.x ships its own py.typed inline annotations. Having both present may cause mypy to use outdated stubs, potentially producing false type errors. The types-redis entries should be removed, but this is a non-blocking dev-dependency cleanup issue.
pyproject.toml (line 167): Redis 8.1.0 ships its own py.typed marker with inline type annotations, making the types-redis stub package (which targets redis 4.x) unnecessary and potentially conflicting. With mypy's install_types = true and follow_imports_for_stubs = false, the presence of types-redis stubs could override redis 8.x's built-in annotations and produce false type errors. Consider removing both types-redis entries (lines 167 and 170 — note the duplicate).
Bumps [redis](https://github.com/redis/redis-py) from 7.4.0 to 8.1.0. - [Release notes](https://github.com/redis/redis-py/releases) - [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES) - [Commits](redis/redis-py@v7.4.0...v8.1.0) --- updated-dependencies: - dependency-name: redis dependency-version: 8.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
179e13a to
f64d261
Compare
foxpatch-aleph
left a comment
There was a problem hiding this comment.
Clean single-line dependency bump of redis[hiredis] from 7.4.0 to 8.1.0. Although this is a major-version jump, the codebase's entire redis usage is confined to NodeCache (src/aleph/services/cache/node_cache.py), which relies only on stable async client APIs (Redis(host, port), get, set with ex=, incr/incrby/decr/decrby, delete, smembers, sadd, sismember, srem, aclose). I verified against the installed 8.1.0 that all of these methods exist with compatible signatures, that the constructor still accepts host/port, and that the hiredis extra remains valid. No other version pins or lockfile references conflict. The 8.1.0 release also ships a hiredis/RESP3 pooled-connection fix that directly benefits pyaleph given its use of the hiredis extra. Existing integration tests in tests/services/test_node_cache.py cover the changed dependency's surface; I could not run them locally due to unrelated environment issues (hatch unavailable, web3/eth_typing conflict), so CI should be the final gate.
pyproject.toml (line 61): Verified compatibility with the major bump: all redis APIs used by NodeCache (get, set with ex=, incr, incrby, decr, decrby, delete, smembers, sadd, sismember, srem, aclose, and the Redis(host=..., port=...) constructor) exist unchanged in 8.1.0. Non-blocking: as a major-version bump, it would be prudent to let the node-cache integration tests run in CI as the definitive check.
Bumps redis from 7.4.0 to 8.1.0.
Release notes
Sourced from redis's releases.
... (truncated)
Commits
e013126Testing with 8.10 GA (#4227)059d1e9Fixed TS.NRANGE commands to correctly apply aggregators (#4225)d486a0aFix FIELDNAME alias dropping first character of un-prefixed fields (#4224)fb93104feat: add client-side HIMPORT fieldset support for standalone and cluster cli...9197609Fix lat/lon swap in search querystring geo() helper (#4223)14714a0fix: Fixed double decoding issue with unquote() (#4222)227280aUpdate lib version to 8.1.088d16d0Decode ACL LOG string values on the default RESP3 legacy callback (#4201)599fd75feat: add FT.ALIASLIST support (#4198)71e275etest: add VectorField RERANK serialization tests for sync and async search (#...