-
-
Notifications
You must be signed in to change notification settings - Fork 25k
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
REL scikit-learn 1.4.1 #28414
REL scikit-learn 1.4.1 #28414
Conversation
…28016) Co-authored-by: Lock file bot <noreply@github.com>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org> Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: ArturoAmorQ <arturo.amor-quiroz@polytechnique.edu>
…nt wheel installing numpy<2 (scikit-learn#28163)
…core (scikit-learn#28156) Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
…ikit-learn#28062) Co-authored-by: Alejandro Martin <alejandro.martingil@tno.nl>
…-learn#28196) Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
scikit-learn#28185) Co-authored-by: Loïc Estève <loic.esteve@ymail.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
…#28214) Co-authored-by: Lock file bot <noreply@github.com>
Co-authored-by: Tim Head <betatim@gmail.com> Co-authored-by: Christian Lorentzen <lorentzen.ch@gmail.com>
scikit-learn#28390) Co-authored-by: Guillaume Lemaitre <guillaume@probabl.ai>
…mpurity` (scikit-learn#28327) Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com> Co-authored-by: Loïc Estève <loic.esteve@ymail.com>
…cikit-learn#28167) Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com> Co-authored-by: Adrin Jalali <adrin.jalali@gmail.com>
be35d8c
to
ee527d0
Compare
…eImputer` (scikit-learn#28365) Co-authored-by: Guillaume Lemaitre <guillaume@probabl.ai> Co-authored-by: Loïc Estève <loic.esteve@ymail.com>
Is it safe to remove the pin now? I thought we had to wait for NumPy 2.0RC before we can remove it. |
the issue is that if we pin, the user will end up with an older version of scikit-learn when a numpy=2 is installed, since we haven't been pinning in the old versions. |
Right now, one would get:
Ideally, we should release 1.4.2 that build against the NumPy 2.0.0.rc1 that allow to be compatible with the ABI. With the current status, when the NumPy RC is released, we are going to break all CIs that rely on the RC ( So we have 2 imperfect situation but I think this is more unlikely to have someone trying If this is fine, I'll do a new tag 1.4.1-1 (I did not push to PyPI and conda-forge) and pin numpy. |
Is there a way to have two sets of binaries on pypi, one against numpy=1 and one against numpy=2, and let Also,
Where do you get this? We shouldn't have any numpy=2 in our wheel / conda builds, do we? |
This is when installing NumPy dev so this would be the situation when numpy get released. |
Can we pin on the release branch |
It is already what we had indeed. |
Looking at numpy/numpy#24300 (comment) , it recommends always setting an upper bound for the release version.
I see people doing: # assume NumPy 2.0 is available at this time
pip install numpy
# Installs older version
pip install scikit-learn I do not see a great solution here. |
Actually, based on experiments, it seems that if we configure scikit-learn 1.4.1 to depend on "numpy<2", then the second command ( The only problem is:
once numpy 2.0.0 is released, then pip will install the last scikit-learn version without an upper bound pin on numpy, which is scikit-learn 1.3.2 in our case. This is what is is being discussed here: numpy/numpy#24300 (comment). However, arguably this is quite a rare case though. Note that the command:
issued when numpy 2.0.0 is released, and assuming scikit-learn 1.4.1 is the last stable released version with a dependency on "numpy<2", would install the last compatible numpy 1.x along with scikit-learn 1.4.1 as expected. So upper bounding numpy<2 in scikit-1.4.x is not that bad in that respect. |
I don't think we want to retrospectively upper bound all old scikit-learn releases and yank the non upper-bounded releases on pypi.org though. We can just accept that on rare occasions pip will do something weird with old releases. |
However, now we have a problem because 1.4.1 has already been publicly tagged without the upper-bound dep on numpy. Neither the source tarball, wheels nor the conda-forge packages have been uploaded though. So what should we do?
EDIT: I am done editing that comment. I think I am in favor of one of the last 2 options. |
If it works, then I would go with this option. (I do not know if we can issue a post release without a Otherwise, releasing 1.4.1 and yanking is okay with me. |
Yep I'm going with the post1 solution. This is the less questioning one and the most straightforward as a release process. Thanks everyone for the input. I'll open a new PR. |
Agreed. For completeness, if I understand #27658 correctly what is annoying for downstream packaging is deleting the tag and and reusing the same tag on a newer commit. Not sure if deleting the 1.4.1 tag would be considered less a problem. |
This is the branch preparing the 1.4.1 release.
For this release, we need to
setup.py
fill_value
andX
dtype inSimpleImputer
#28365TODO list:
[cd build]
commit message to upload wheels to the staging repohttps://github.com/conda-forge/scikit-learn-feedstock and wait for merge
https://github.com/scikit-learn/scikit-learn.github.io (only major/minor)