-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add hiredis dependency on supported platforms #20437
Conversation
python/setup.py
Outdated
@@ -267,6 +268,11 @@ def get_packages(self): | |||
"redis >= 3.5.0, < 4.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't you need to remove this?
@@ -267,6 +268,11 @@ def get_packages(self): | |||
"redis >= 3.5.0, < 4.0.0", | |||
] | |||
|
|||
if platform.system() == "Darwin" and platform.machine() == "arm64": | |||
setup_spec.install_requires.append("redis >= 3.5.0") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add comment as to why?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, let's wait for tests.
Windows failure! Can you fix @wuisawesome
|
Tune workflow and dashboard errors all look unrelated. merging. cc @zhe-thoughts @iycheng we need to cherry-pick this one |
@wuisawesome @ericl @pcmoritz Verifying: this PR fixes #20416, is that right? (It's not linked to the issue) |
Actually @ericl, Waleed, and I talked an I think we may not want to cherry-pick this one (though we still want it in master). |
@wuisawesome and @ericl can you say what the rationale is? |
The release branch currently has redis < 4.0 on all platforms. The main drawback is that in the future, if people won't be able to use ray 1.9 with redis 4.0. We’ll probably be able to support it by 1.10 though. The main drawback of cherry picking this PR is that there's some additional risk in adding a new dependency and major version upgrade this late in the release cycle. Note that this is somewhat mitigated by the fact that we use hiredis as the primary redis client in the ray core already, and redis 3.9 already did feature detection and used hiredis (and chances are you already have hiredis installed and have been using it, even though release testing didn’t). |
Thanks for the summary! I think we should try hard to be as compatible as possible with external packages, it is very reasonable to assume that somebody wants to use their own redis client in a Ray application or mix Ray with other packages that might have their own requirements on the redis client and therefore we should strive to support as many versions for that as possible. Given that we have pretty exhaustive tests for the codepaths involving redis in the CI and the release tests and they are passing with redis-py 4 on most platforms, supporting redis-py 4 on these platforms should be low risk and if that is the case we should support it. I'd love to hear other opinions on this if somebody disagrees :) Ideally of course we can also be compatible with redis-py 4 on Windows and M1 Macs, hopefully we can still make that happen together with upstream, but we certainly shouldn't be blocked on it. |
And just linking that the |
Looks like we're pretty close to re-simplifying all these PRs. redis/redis-py#1726 has been approved, so once it makes its way into a pypi release, we can just go back to the |
Why are these changes needed?
This PR adds the hiredis dependency for non M1 machines.
This removes the
redis < 4.0
pin.Since hiredis doesn't have M1 mac wheels yet, so users there will have extra warning messages in their outputs if they use redis 4.0.
Related issue number
Checks
scripts/format.sh
to lint the changes in this PR.