Skip to content

Prepare release notes for v0.20.0#6556

Merged
stefanv merged 51 commits intoscikit-image:mainfrom
lagru:prep-v0.20-notes
Jan 9, 2023
Merged

Prepare release notes for v0.20.0#6556
stefanv merged 51 commits intoscikit-image:mainfrom
lagru:prep-v0.20-notes

Conversation

@lagru
Copy link
Copy Markdown
Member

@lagru lagru commented Oct 3, 2022

Description

Start preparation of the release notes for scikit-image 0.20.0. The initial list of PRs was generated with generate_release_notes.py. Compared to 0.19 and release_template.rst I'm using different sections to structure the changes for now. This is because I'm not very clear on the distinction between suggested sections like "API Changes", "Deprecations" and "Backward Incompatible Changes".

  • Sort and summarize PRs until creation of this pull request (2022-10-03)
  • Sort and summarize PRs since creation of this pull request (2022-10-03)
  • address open questions
  • Summarize highlights in first section

And keep up to date...

@lagru lagru added the 📄 type: Documentation Updates, fixes and additions to documentation label Oct 3, 2022
@lagru lagru added this to the 0.20 milestone Oct 3, 2022
@lagru lagru marked this pull request as draft October 3, 2022 15:57
lagru added 2 commits October 3, 2022 18:25
"New features" MUST be totally backwards compatible. Everything else
goes into "changes and new deprecations".
Copy link
Copy Markdown
Member

@mkcor mkcor left a comment

Choose a reason for hiding this comment

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

Thanks for starting this!

Copy link
Copy Markdown
Member

@stefanv stefanv left a comment

Choose a reason for hiding this comment

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

Thanks for starting this.

The biggest issue I see is that some PRs are listed twice.

@jarrodmillman
Copy link
Copy Markdown
Contributor

@lagru Thanks for starting this. I was just chatting w/ Stefan about the 0.20 release. I tentatively volunteered to make the 0.20 release and am happy to do it, if it is helpful.

According to the schedule, Python 3.11.0 final is due Monday, 2022-10-24. I would like to release 0.20 just before or just after the 3.11 release with 3.11 wheels. NumPy, matplotlib, Pandas, and a few other packages have already released 3.11 wheels.

My preference (for what it is worth) would be to release 0.20 before 10/24 and move all the remaining issues and PRs for 0.20 to 0.21.

If we are going to release 0.20 before 10/24, we should release a 0.20rc1 10/17 or before. The main thing left that I would like to see merged first is the meson stuff and I would like to bump the NetworkX requirements. For NetworkX, we are about to release version 3.0 and it would be good to have scikit-image require at least 2.8 as a minimum NetworkX requirement as it has all the pending deprecations for NX 3.0.

@lagru
Copy link
Copy Markdown
Member Author

lagru commented Oct 4, 2022

Thanks everyone. I'll go through the suggested changes. A lot of the stuff I just haven't gotten to yet.

@jarrodmillman I don't have a preference between your suggested release dates. I'll try to get this is shape bit by bit until the middle of next week if that's early enough.

Some suggestions I plan to edit locally, some I'd like to discuss first.

Co-authored-by: Stefan van der Walt <sjvdwalt@gmail.com>
Co-authored-by: Marianne Corvellec <marianne.corvellec@ens-lyon.org>
Use present tense and imperative tone for release notes. Try to be
more precise about why and how things changed.

Co-authored-by: Marianne Corvellec <marianne.corvellec@ens-lyon.org>
Co-authored-by: Stefan van der Walt <sjvdwalt@gmail.com>
lagru added 2 commits October 5, 2022 15:31
A lot of the removed PRs were already backported to 0.19. So I'm
ignoring these for 0.20. Note that I'm checking if the commit is
available in these releases with "git tag --contains <COMMIT_HASH>".
@lagru lagru force-pushed the prep-v0.20-notes branch from 0e76df3 to 122c3fa Compare October 8, 2022 20:21
I'm confused with what to do abou the Milestone 1.0. Should these be
included in 0.20 now. Collect them for now until that's confirmed.

Furthermore, collect the backported PRs. We can delete them later but
for now it's useful to keep them for review and in case we want to go
back. Note that quite a lot are missing because I didn't start this
earlier.
@jni
Copy link
Copy Markdown
Member

jni commented Oct 11, 2022

Man there's some nice things in here! 😊 thanks @lagru!

Comment on lines +48 to +53
- Use the minimal required unsigned integer size in ``skimage.filters.rank_order`` which allows to operate the function with higher precision or on larger arrays.
Previously, the returned ``labels`` and and ``original_values`` were always of type uint32.
(`#6342 <https://github.com/scikit-image/scikit-image/pull/6342>`_).
- Use the minimal required unsigned integer internally in ``skimage.morphology.reconstruction`` which allows to operate the function with higher precision or on larger arrays.
Previously, int32 was used.
(`#6342 <https://github.com/scikit-image/scikit-image/pull/6342>`_).
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@grlee77, could you please have look if I correctly summarized #6342?

single precision seed now returns single precision output (this function was missed during previous float32 work)

I'm confused about this bit, because I don't see any changes in the PRs diff that should impact seed?

Copy link
Copy Markdown
Contributor

@grlee77 grlee77 Oct 17, 2022

Choose a reason for hiding this comment

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

This was just referring to a place where morphology.reconstruct had unconditional promotion to float64 internally. See at the left in the diff here on lines 173-175 where seed and mask used to get copied into a float64 images array. This was changed to use _supported_float_type so it is possible to get single precision output from this function.

https://github.com/scikit-image/scikit-image/pull/6342/files#diff-a0783c211f0b0a66e4cc41bf1838cdafe46ab957a9dfdb685784aecd64135243L173

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Thanks for the clarification. So actually mask determines the dtype of the output and not seed?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Good question... I would assume we would want "float_dtype = max { _supported_float_type(seed.dtype), _supported_float_type(mask.dtype) }" 🤔

lagru and others added 8 commits December 5, 2022 17:25
Co-authored-by: Marianne Corvellec <marianne.corvellec@ens-lyon.org>
Only PR left is the one with the long list of completed deprecations.
Co-authored-by: Marianne Corvellec <marianne.corvellec@ens-lyon.org>
Co-authored-by: Marianne Corvellec <marianne.corvellec@ens-lyon.org>
@lagru
Copy link
Copy Markdown
Member Author

lagru commented Dec 7, 2022

Okay, after summarizing #6583 😮‍💨, this should be up to date now. 😁 I'm unsure how we want to proceed.

@mkcor
Copy link
Copy Markdown
Member

mkcor commented Dec 8, 2022

Okay, after summarizing #6583 face_exhaling, this should be up to date now. grin I'm unsure how we want to proceed.

Thanks for all the work, @lagru! I guess that, right after merging this PR, we want to create a branch from main with the right name, which will trigger the builds we need... Do you have this in your notes from the 'knowledge transfer' meeting with @grlee77? 👼

@grlee77
Copy link
Copy Markdown
Contributor

grlee77 commented Dec 8, 2022

Thanks for all the work, @lagru! I guess that, right after merging this PR, we want to create a branch from main with the right name, which will trigger the builds we need... Do you have this in your notes from the 'knowledge transfer' meeting with @grlee77?

I don't think we looked more at how to run/test the wheels locally, but didn't really cover all aspects of that. Given the infrequency of these releases, I always refer back to https://github.com/scikit-image/scikit-image/blob/main/RELEASE.txt

We should start with tagging an alpha or release candidate, given the large number of API changes. We can then make sure the wheels seem solid before tagging the final release. I think @jarrodmillman said he may have some time to work on it after a new networkx release is out.

@grlee77
Copy link
Copy Markdown
Contributor

grlee77 commented Dec 8, 2022

Forgot to mention that creating the branch does not trigger wheel builds. Only pushing a tag starting with the pattern here will trigger the wheel build action:

name: Build Wheels and Release
on:
push:
tags:
- "v*"
- "buildwheels*"

Only those starting with v will attempt to automatically push to PyPI due to this if condition:

deploy:
permissions:
contents: write # for softprops/action-gh-release to create GitHub release
name: Release
needs:
[
build_linux_38_and_above_wheels,
build_linux_aarch64_wheels,
build_macos_wheels,
build_windows_wheels,
]
if: github.repository_owner == 'scikit-image' && startsWith(github.ref, 'refs/tags/v') && always()

@lagru
Copy link
Copy Markdown
Member Author

lagru commented Dec 8, 2022

Also we still have to create the highlights in first section if we want those. But that can probably be done after branching as well.

@mkcor
Copy link
Copy Markdown
Member

mkcor commented Dec 15, 2022

Hi @lagru, I just merged #6650; the change is so tiny and trivial (does not modify any behavior) that I believe it's fine not to mention this PR in the release notes. Hope you don't mind!

@lagru
Copy link
Copy Markdown
Member Author

lagru commented Dec 16, 2022

@mkcor no worries. Adding an item it is easily done. ;)

Co-authored-by: Marianne Corvellec <marianne.corvellec@ens-lyon.org>
Copy link
Copy Markdown
Contributor

@jarrodmillman jarrodmillman left a comment

Choose a reason for hiding this comment

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

We should merge this for the 0.20rc1 release and we can fix it up afterward, if needed.

@stefanv
Copy link
Copy Markdown
Member

stefanv commented Jan 9, 2023

Thanks @lagru. @jarrodmillman that sounds like a good plan.

This release also completes the transition to indicating multi-channel images with the more flexible channel_axis parameter as well as a many other deprecations to make scikit-image's API more consistent and expressive.

A sentence I think we should tweak a bit to read more easily.

@stefanv stefanv merged commit 28721f4 into scikit-image:main Jan 9, 2023
@lagru lagru deleted the prep-v0.20-notes branch January 13, 2023 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📄 type: Documentation Updates, fixes and additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants