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 skip-4 draft #6339
Add skip-4 draft #6339
Conversation
Co-authored-by: Riadh Fezzani <rfezzani@gmail.com>
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.
Thanks, Juan. This seems in line with what we discussed in prior community meetings.
One other aspect we did discuss previously was potentially having a skimage 1.1 that is identical to 1.0, but adds a warning on import that points users to the new skimage2
package. Users wanting to remain on scikit-image 1.0 could then just pin their requirements to skimage<1.1
to avoid this warning.
|
||
- scikit-image 0.19 will be followed by scikit-image 1.0. Every deprecation | ||
message will be removed from 1.0, and the API will be considered the | ||
scikit-image 1.0 API. |
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.
To clarify by "every deprecation message will be removed", you mean that just the warnings will be removed, but the actual deprecations will not be completed?. For instance, rather than removing multichannel
in favor of channel_axis
, both would be left in the 1.0 API? (to avoid having a shorter than usual deprecation cycle for deprecations that were new to v0.19).
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.
Yeah it's ambiguous, and I agree with your assessment: let's make only the deprecations slated for 0.20, and remove other warning messages, even if it means a duplicate API (as in the case of multichannel vs channel_axis).
scikit-image 1.0 API. | ||
- After 1.0, the main branch will be changed to (a) change the import name to | ||
skimage2, (b) change the package name to skimage2, and (c) change the version | ||
number to 2.0-dev. |
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.
We could technically make the skimage2
change on main immediately as we already merged some API changes there which aren't scheduled for 1.0.
We could branch v1.0.x from v0.19.x branch which has had no API changes, but does have bacports of all bug fixes since 0.19.2. We should likely make a v0.19.3 with the current bug fixes in that branch and then prepare a 1.0 very soon afterward that removes the deprecation messages.
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.
No, I would like to include the present changes, as long as there are no new deprecation messages, in 1.0. ie I don't think we need or want to branch off 0.19.
Co-authored-by: Gregory Lee <grlee77@gmail.com>
This seems really positive! |
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.
Thanks @jni for taking this on!
Co-authored-by: Lars Grüter <lagru+github@mailbox.org>
Co-authored-by: Lars Grüter <lagru+github@mailbox.org>
maintainer time, or a long deprecation cycle for the 1.0 namespace, which would | ||
ultimately result in a lot of unhappy users getting deprecation messages from | ||
their scikit-image use. | ||
|
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.
I do like separate packages better, but here are two concrete examples that did go with this combined package approach:
- OpenCV had both
cv
andcv2
namespaces available in the same package for a little while. imageio
recently introducedimagio.v2
andimageio.v3
with the plan that the defaultimageio
namespace will switch from v2 to v3 at a future date.
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.
BeautifulSoup is also a good example, I guess.
skimage2, (b) change the package name to skimage2, and (c) change the version | ||
number to 2.0-dev. | ||
- There will be *no* scikit-image package on PyPI with version 2.0. Users who | ||
``pip install scikit-image`` will always get the 1.0 version of the package. |
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.
IIRC that's one point we discussed before; to install skimage2
people would use pip install skimage2
, is that right?
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.
Yes, that's what "changing the package name" (vs import name) means. Will try to clarify.
My initial goal was to include all points and related context in this draft. So right now there may be some tangential or not strictly necessary information here. In any case I felt the structure and content is a good starting point in case somebody wants to add something.
Citing the commit: My initial goal was to include all points and related context in this draft. So right now there may be some tangential or not strictly necessary information here. In any case I felt the structure and content is a good starting point to improve upon. |
Thanks @lagru! I'm quite happy to err on the side of more information rather than too little information. In the future, I'm sure it will be nice for someone to be able to quickly find what was considered. |
@scikit-image/core imho this is ready to merge. Note this line from SKIP-0:
We can then discuss accepting the SKIP on the discussion forum. |
scikit-image2 might be an evolution of the package name but not of the import name!
This plan was discussed earlier and brought up again by Gregory Lee.
This is already covered more extensively in the section "Related Work".
Ok the build is passing, last two failures are segfaults apparently caused by simpleitk, unrelated to this PR. |
Anyone want to approve/merge this? 😊 |
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.
Looks good to me. Thanks, @jni. Let's go ahead and merge. Do you want to make a couple of emails and/or forum posts to raise awareness and get feedback from the community?
Yup, that's the next step! Whoo! 😊 |
Thank you @jni! |
Thanks for writing this up, @jni! I think you did a great job. I don't know where else to leave comments, so here they are:
Thanks again! |
Hey @stefanv!
Could you tell me a bit more about what you would like to see here? Do you want the first paragraph to summarise the whole skip, and subsequent paragraphs to explain motivation?
I don't think it's a big one: rather than maintaining 1.1.x and 1.0.x branches, we only maintain a 1.0.x. Every 1.0.x release gets a single commit cherry-picked on top of it that adds the warning, and released as 1.1.x. I find manual silencing of warnings is quite burdensome to be honest, and would like to avoid that for our users.
I disagree with this statement though: there will be no deprecations between 1.x and 2.0, only API changes. But the first part, I can definitely get behind: every change will be explicitly justified.
I vaguely preferred not duplicating the discussion section from SKIP-3, but I can do so if you feel strongly about it. |
I think "links to" won't duplicate. W.r.t. maintaining two versions, I suppose it's okay if it only requires one patch. W.r.t. the first paragraph, exactly: big picture first, then detail. 🙏🏻 |
Should I add the migration plan from https://discuss.scientific-python.org/t/a-pragmatic-pathway-towards-skimage2/530/11 here, or make a new SKIP, @jni? |
My 2 cents, if in doubt it's probably less confusing if we create yet another SKIP 😅 and keep discussions around SKIP4 from being confusing. Nothing's stopping us from copying the still relevant parts from SKIP4. Thanks for following up on this @stefanv! |
I'm actually more in favour of modifying this SKIP (SKIP-4), as it's still in draft, and I never made the changes requested by @stefanv above. In my opinion it's more confusing to have seven not-quite-right migration SKIPs than to have two: the failed one and the successful one. |
Description
This is the draft for SKIP-4, the alternative to SKIP-3 (#5475). It proposes the release of a new API under the skimage2 namespace and package name.