Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[MRG] More explicit binder requirements for 0.22 #15847

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

Merged

Conversation

lesteve
Copy link
Member

@lesteve lesteve commented Dec 9, 2019

Follow-up on #15840.

This avoids having to change the binder requirements on each minor release.

@lesteve lesteve changed the title More robust binder requirements for minor releases. [MRG} More robust binder requirements for minor releases. Dec 9, 2019
@lesteve lesteve changed the title [MRG} More robust binder requirements for minor releases. [MRG] More robust binder requirements for minor releases. Dec 9, 2019
@lesteve lesteve added this to the 0.22.1 milestone Dec 9, 2019
@lesteve
Copy link
Member Author

lesteve commented Dec 9, 2019

I am actually not sure whether this PR is preferrable compared to setting explicitly the minor version in .binder/requirements.txt.

  • setting minor version in .binder/requirements. pros: more explicit, cons: more manual so more likely to be forgotten
  • not setting minor version in .binder/requirements. pros: no need to change .binder/requirements, cons: in principle, there are some edge cases like the one detailed below where the version of scikit-learn may not be the correct one.

Reminder: the binder docker image depends on the last commit in the 0.22.X branch (the commit hash is used as a cache key for the docker images). If someone clicks on the binder link and the last commit in 0.22.X has changed, the docker image will be rebuilt. There is a edge case where the timeline goes like this:

  • last commit on 0.22.X for some time
  • someone clicks on the binder link
  • 0.22.1 is released on PyPI

In this case 0.22.1 will be the version in the binder docker image until there is a new commit in the 0.22.X branch.

@jnothman
Copy link
Member

So the risk is that binder will offer the previous release (because that's what was available on pypi when the binder was last loaded) until the branch is updated?
One way to do this is to update the version manually and have the docker build fail until pypi is in sync with the docs

Another solution might change the release process such that the circle docs are only rendered once the release is on pypi... But not sure what the right way to engineer this is. And not sure it satisfies other requirements

@qinhanmin2014
Copy link
Member

qinhanmin2014 commented Dec 11, 2019

A question @lesteve, sorry if I'm wrong
Imaging that the time line goes like this:
(1) scikit-learn release version sk_a, at the mean time, the latest numpy release is np_a
(1) scikit-learn release version sk_b, at the mean time, the latest numpy release is np_b
Of cource sk_a is compatible with np_a and sk_b is compatible with np_b, but we can't ensure that sk_a is compatible with np_b (e.g., we might remove some deprecated numpy functions).
So perhaps we should specify the version of all the dependencies?

@lesteve
Copy link
Member Author

lesteve commented Dec 17, 2019

Sorry I forgot about this one:

  • I think it is probably simpler to explicitly set the scikit-learn version in .binder/requirements.txt as is currently done in the 0.22.X. We will have to add this manual step to the "how to make a release" documentation.
  • I did set the dependencies version explicitly. I used roughly the latest version available at the time of 0.22 release

@lesteve lesteve changed the title [MRG] More robust binder requirements for minor releases. [MRG] More explicit binder requirements for 0.22 Dec 17, 2019
Copy link
Member

@qinhanmin2014 qinhanmin2014 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to merge

@qinhanmin2014 qinhanmin2014 merged commit 7e85a6d into scikit-learn:0.22.X Dec 18, 2019
@lesteve lesteve deleted the more-robust-binder-requirements branch December 20, 2019 13:00
@adrinjalali adrinjalali mentioned this pull request Apr 23, 2020
9 tasks
Pseudomanifold pushed a commit to BorgwardtLab/scikit-learn that referenced this pull request Apr 24, 2020
@glemaitre glemaitre mentioned this pull request Aug 3, 2020
9 tasks
@ogrisel ogrisel mentioned this pull request Dec 2, 2020
12 tasks
@glemaitre glemaitre mentioned this pull request Dec 22, 2020
14 tasks
@glemaitre glemaitre mentioned this pull request Jan 18, 2021
13 tasks
@glemaitre glemaitre mentioned this pull request Apr 22, 2021
12 tasks
@adrinjalali adrinjalali mentioned this pull request Sep 7, 2021
12 tasks
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

Successfully merging this pull request may close these issues.

3 participants