aminghadersohi opened a new pull request, #42915:
URL: https://github.com/apache/superset/pull/42915

   ### SUMMARY
   
   [sc-116962]
   
   Restore the declared `redis` compatibility floor to `>=5.0.0` while keeping 
the generated requirements pinned to `redis==8.1.0`.
   
   [#42857](https://github.com/apache/superset/pull/42857) correctly updated 
Superset's resolved Redis client from 8.0.1 to 8.1.0, but it also raised the 
package metadata's lower bound from 5.0.0 to 8.1.0. The lower bound should 
describe the oldest API version Superset requires, independently of the version 
selected for Superset's default development and deployment environment.
   
   An audit of Superset's Redis integrations found no redis-py 8 or 8.1 API 
dependency. Superset uses the standalone and asyncio clients, Sentinel, 
standard `SET`/`GET`/`DELETE`, streams (`XADD`/`XRANGE`), and pub/sub. These 
APIs and the constructor options Superset passes (including `protocol=2`) are 
available in redis-py 5.0.0. The redis-py 6, 7, 8, and 8.1 release notes do not 
identify an added API used here; the relevant later-version changes are 
defaults or APIs Superset does not use. Superset already pins RESP2 and 
socket-timeout behavior where it constructs clients directly, and it does not 
rely on the later TLS hostname-verification default for correctness.
   
   This distinction matters to redistributors. A downstream distribution that 
temporarily retained redis-py 5.3.1 while completing a TLS certificate 
migration changed from divergent-but-resolvable to unsatisfiable when the 
declared floor moved. Keeping 8.1.0 in `requirements/base.txt` and 
`requirements/development.txt` preserves Superset's default while avoiding that 
resolver breakage for compatible downstream installations.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   Not applicable; dependency metadata only.
   
   ### TESTING INSTRUCTIONS
   
   - Run `./scripts/uv-pip-compile.sh` and verify it exits successfully with no 
generated requirements changes.
   - Verify `requirements/base.txt` and `requirements/development.txt` remain 
pinned to `redis==8.1.0`.
   - Compile the base dependencies with a `redis==5.3.1` constraint and verify 
the resolver succeeds.
   - Run `pre-commit run` with `pyproject.toml` staged.
   
   ### ADDITIONAL INFORMATION
   
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [ ] Changes UI
   - [ ] Includes DB Migration (follow approval process in 
[SIP-59](https://github.com/apache/superset/issues/13351))
     - [ ] Migration is atomic, supports rollback & is backwards-compatible
     - [ ] Confirm DB migration upgrade and downgrade tested
     - [ ] Runtime estimates and downtime expectations provided
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to