-
-
Notifications
You must be signed in to change notification settings - Fork 749
Drop OSX builds for python 3.9 #6073
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
Conversation
Unit Test Results 16 files - 2 16 suites - 2 7h 27m 15s ⏱️ - 1h 26m 10s Results for commit 41d003a. ± Comparison against base commit 971a96d. ♻️ This comment has been updated with latest results. |
|
I don't think this is wise. You're skipping all code specific to a Python version that test an optional dependency. Artificial, but realistic example: mymod.py: from __future__ import annotations
from typing import cast
def f(x: int | dict[str, int]):
import scipy
if some_condition: # anything but isinstance()
return scipy.foo(cast(int, x))
else:
return scipy.bar(cast(dict[str, int], x))test_mymod.py: def test_f():
pytest.import_or_skip("scipy")
assert f(1) == ...
assert f({"x": 1}) == ...The above fails on Python 3.8 because of the |
|
Do you suggest to use the minimal python version to test all optional dependencies? I believe there is always a trade off unless we always test everything. We can postpone this decision until after the monthly dev meeting later today. The agenda is proposing to drop cython which would also have an impact on our test matrix. |
|
Currently we have:
I think we should change it to:
That's 9 workflows before and after, but with one less Mac workflow and a lot of added value. |
I'm open to setting it up this way but that requires much more effort than what I'm willing to put in this at this point in time. What I wanted to rectify here is that we have "partial optional" all over the place but if there is more demand for a conversation, how about the following
We have a few only-tested-here in the py3.9 build but I don't think there is a lot of sensitivity to OSX in there |
|
What's "partial optional" / optional-as-is? I see 3.8 only
3.9 only
I would not disable MacOS testing on 3.10 and I would not skip the compression libs either. As a transitory low-effort matrix I'd suggest
|
I do consider the compression libs and a few other things like scipy optional. Essentially everything that's currently not in requirements.txt However, my suggestion in #6073 (comment) meant simply to move
why? |
In 3.10 specifically, nothing comes to mind. But there have been cases in the past for a major OS-specific change. For example, in 3.8 the default mp-context changed from fork to spawn on MacOSX. It would be very bad practice to skip testing it just because nothing catches our eyes from the release notes. |
My argument is mostly that the cost is very high to keep this up and the likelihood for an error very small. |
|
Unrelated question: Do we need CUDA tests everywhere? Isn't this covered by the gpuCI? |
|
The current state is minimal and just drops py3.9 and moves pynvml to py3.8. We can discuss further changes to the test matrix in a separate issue. I think this would already help a lot with the bottleneck and I would like to get this in fast |
|
I opened #6085 for any follow up conversations |
| - ipykernel | ||
| - ipywidgets | ||
| - jinja2 | ||
| - joblib |
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.
Last reference to this was removed in #3040
Closes #6040
I went a bit further than what has been discussed in the above issue, mostly to have things cleaned up a bit.
Based on this cleanup, I figured the most important build to keep around for OSX would be the "all dependencies" one which is 3.9 atm.
If this cleanup is too aggressive, we can go with Matt's proposal and just drop py3.9