8000 RFC bump up dependencies (numpy, scipy and python) minimum versions for scikit-learn 1.1 · Issue #21460 · scikit-learn/scikit-learn · GitHub
[go: up one dir, main page]

Skip to content

RFC bump up dependencies (numpy, scipy and python) minimum versions for scikit-learn 1.1 #21460

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

Closed
ogrisel opened this issue Oct 26, 2021 · 5 comments
Milestone

Comments

@ogrisel
Copy link
Member
ogrisel commented Oct 26, 2021

We are usually more conservative than what is required by NEP 29:

https://numpy.org/neps/nep-0029-deprecation_policy.html#support-table

Our current dependencies minimum supported versions are defined in:

https://github.com/scikit-learn/scikit-learn/blob/1.0.1/sklearn/_min_dependencies.py

I think it's fine to be conservative as long as CI and backport maintenance costs remain reasonable but we should specify what we want for the next release.

Let's consolidate our needs in the list below (feel free to update):

We can anticipate scikit-learn 1.1 to be released early-2022.

Are there other needs? Other things that could be greatly simplified by up-ing our minimal deps requirements?

@ogrisel ogrisel added this to the 1.1 milestone Oct 26, 2021
@thomasjpfan
Copy link
Member

Not a necessary change, but we can bump joblib to remove the boilerplate with _joblib_parallel_args:

def _joblib_parallel_args(**kwargs):
"""Set joblib.Parallel arguments in a compatible way for 0.11 and 0.12+

If there are performance improvements for using threadpoolctl>=3.0 then I can see bumping that up too:

# compatibility fix for threadpoolctl >= 3.0.0
# since version 3 it's possible to setup a global threadpool controller to avoid
# looping through all loaded shared libraries each time.
# the global controller is created during the first call to threadpoolctl.
def _get_threadpool_controller():
if not hasattr(threadpoolctl, "ThreadpoolController"):

@ogrisel
Copy link
Member Author
ogrisel commented Oct 26, 2021

Indeed, for joblib. 0.12 is really old.

For threadpoolctl, I think we can leave with the backport for one 1.1 and reconsider this for 1.2.

@jeremiedbb
Copy link
Member

joblib min version has been bumped to 1.0.0 #22365

@lesteve
Copy link
Member
lesteve commented Feb 25, 2022

To try to remember to do it: using importlib.metadata in sklearn.show_versions to avoid importing pip (xref #22614)

@jeremiedbb
Copy link
Member

I think all dependencies that needed a bump were bumped.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
0