scikit-image / scikit-image

Image processing in Python

Home Page:https://scikit-image.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

0.23 release

jarrodmillman opened this issue · comments

https://pypi.org/project/scikit-image/0.23.0rc2/ looks good to me.

@stefanv,@lagru, @mkcor I propose making the final 0.23 release on Tuesday, April 9th.

Thanks, @jarrodmillman. I'm available today and tomorrow to {test, review, approve} anything you might need for the 0.23 release.

@mkcor I am traveling back today, but I think everything should be ready to go. Thanks!!

I'm on board with releasing tomorrow, though I'll not be near a keyboard after the community meeting (after 18:00, UTC) for a while. I'll make sure the release notes are ready and feel welcome to ping me on anything else in the meantime.

I went through the release notes and highlighted a few items, feel welcome to disagree or modify further. Assuming you will include the recent PRs on main as well and not branch from v0.23.0rc2, this is how they currently look:

Details

scikit-image 0.23.0

We're happy to announce the release of scikit-image 0.23.0!

Highlights

  • Add parameter mode to binary_erosion, binary_dilation, binary_opening and binary_closing in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Add parameters mode and cval to erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Ensure skimage.morphology.closing and skimage.morphology.opening are extensive and anti-extensive, respectively, if the footprint is not mirror symmetric (#6695).
  • Speedup skimage.util.map_array by parallelization with Cython's prange (#7266).

New Features

  • Add new intensity_std property to skimage.measure.regionprops which computes the standard deviation of the intensity in a region (#6712).
  • Add parameter mode to binary_erosion, binary_dilation, binary_opening and binary_closing in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Add functions mirror_footprint and pad_footprint to skimage.morphology (#6695).
  • Add parameters mode and cval to erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Add new parameter spacing to segmentation.expand_labels to support anisotropic images (#7080).

API Changes

  • Drop support for Python 3.9 (#7217).
  • Parameters shift_x and shift_y in skimage.morphology.erosion and skimage.morphology.dilation are deprecated. Use pad_footprint or modify the footprint manually instead (#6695).
  • Remove unexpected value scaling in skimage.morphology.skeletonize_3d for non-binary input images. skeletonize_3d now always returns a binary array like similar functions (#7095).
  • Deprecate function skimage.feature.plot_matches in favor of skimage.feature.plot_matched_features (#7255).
  • Deprecate skimage.morphology.skeletonize_3d in favor of just skimage.morphology.skeletonize (#7094).
  • Deprecate parameter output in skimage.filters.gaussian; use out instead (#7225).
  • Change the default value of the parameters shift_x, shift_y and shift_z from False to 0 in the skimage.filters.rank functions. This has not impact on the results. Warn in case boolean shifts are provided from now on (#7320).

Performance

  • Add lazy loading to skimage.metrics module (#7211).
  • Speedup skimage.util.map_array by parallelization with Cython's prange (#7266).

Bug Fixes

  • Add exception to avoid surprising result when image is too small for the given parameters in skimage.feature.hog (#7153).
  • Ensure skimage.morphology.closing and skimage.morphology.opening are extensive and anti-extensive, respectively, if the footprint is not mirror symmetric (#6695).
  • Avoid a TypeError in skimage.registration.phase_cross_correlation when the real-time shift cannot be determined (disambiguate=True). Display a warning instead (#7259).
  • Fix logic in skimage.graph.pixel_graph which raised a TypeError when the parameter edge_function was provided without a mask (#7310).
  • Ensure cache stays empty when cache=False is passed to skimage.measure.regionprops (#7333).

Documentation

  • Update instructions for updating dev environment (#7160).
  • Make titles in RAG gallery examples more explicit (#7202).
  • Add docstring to skimage.graph module (#7192).
  • Use consistent notation for array dimensions in the docstrings (#3031).
  • Specify default markers in watershed docstring (#7154).
  • Stop HTML documentation from intercepting left and right-arrow keys to improve keyboard accessibility (#7226).
  • Fix reference formatting for nitpicky sphinx (#7228).
  • Document how to deal with other array-likes such as xarray.DataArray and pandas.DataFrame in the crash course on NumPy for images (#7159).
  • Fix broken function calls and syntax issues in user guide (#7234).
  • Use correct default mode in docstring of skimage.transform.swirl (#7241).
  • Add missing documentation about spacing parameter in moments_normalized (#7248).
  • Update docstring & example in the hough_ellipse transform (#6893).
  • Point binder tag/branch to commit corresponding to docs/release (#7252).
  • Add example to FundamentalMatrixTransform class (#6863).
  • Adds explanation of what the optional dependency on Matplotlib offers to the install instructions (#7286).
  • Use correct symbol θ for tightness in the docstring of skimage.registration.optical_flow_tvl1 (#7314).
  • The description of the parameter cval is modified in "int or float". cval is a numerical value not a string (#7319).
  • Remove obsolete instruction about documenting changes (#7321).
  • Added comment to clarify that dt corresponds to tau, i.e. the time step. Changed gray scale in grayscale in the entire registration module (#7324).
  • Create SECURITY.md (#7230).
  • Remove deprecated parameter coordinates from docstring example of skimage.segmentation.active_contour (#7329).
  • Include dates in release note headings (#7269).
  • Update description of how to document pull requests for inclusion in the release notes (#7267).
  • Clarify description of data_range parameter in skimage.metrics.structural_similarity (#7345).
  • Use object-oriented Matplotlib style in longer gallery examples and demonstrations (doc/examples/applications) (#7346).
  • In the gallery example on segmenting human cells (in mitosis), include the border when generating basin markers for watershed (#7362).

Infrastructure

  • Update wording on the stale bot to assume the core team dropped the ball (#7196).
  • Update Azure job name following the drop of Python 3.9 (#7218).
  • Schedule nightly wheel builds at uncommon time (#7254).
  • Build nightly wheels with nightly NumPy 2.0 (#7251).
  • Use pytest-doctestplus instead of classic pytest-doctest (#7289).
  • Update the scientific-python/upload-nightly-action to v0.5.0 for dependency stability and to take advantage of Anaconda Cloud upload bug fixes (#7325).
  • Add assert_stacklevel helper to check stacklevel of captured warnings (#7294).
  • Exclude pre-commit[bot] from changelist's contributor list (#7358).

Maintenance

  • Remove outdated & duplicate "preferred" field in version_switcher.json (#7184).
  • Upgrade to spin 0.7 (#7168).
  • Do not compare types, use isinstance (#7186).
  • [pre-commit.ci] pre-commit autoupdate (#7181).
  • Increase tolerance for moments test for 32 bit floats (#7188).
  • Temporarily pin Cython to <3.0.3 until CI is fixed (#7189).
  • Remove obsolete meson instructions (#7193).
  • Temporarily pin Cython to <3.0.3 until CI is fixed, take 2 (#7201).
  • Fix chocolatey (#7200).
  • Pin Pillow to <10.1.0 until incompatibility with imageio is fixed (#7208).
  • Use Black (#7197).
  • Apply black to _hog.py after previous merge lacking black (#7215).
  • Unpin Cython after release of Cython 3.0.4 (#7214).
  • [pre-commit.ci] pre-commit autoupdate (#7236).
  • Cleanup for Python 3.12 (#7173).
  • Make Python 3.12 default CI Python (#7244).
  • Add explicit noexcept to address Cython 3.0 warnings (#7250).
  • Update imageio to fix Pillow incompatibility (#7245).
  • Upgrade docker/setup-qemu-action to v3 (#7134).
  • Fix warningfilter for deprecation in SciPy 1.12.0rc1 (#7275).
  • Update to numpy>=1.23 and matplotlib>=3.6 according to SPEC 0 (#7284).
  • Add new deprecate_parameter helper (#7256).
  • Update meson and Cython (#7283).
  • Handle floating point warning for empty images in skimage.registration.phase_cross_correlation (#7287).
  • Update spin (0.8) (#7285).
  • Complete deprecations that were scheduled for our 0.23 release. Remove now unused deprecate_kwarg and remove_arg; they are entirely succeeded by deprecate_parameter (#7290).
  • For security best practices, use the scientific-python/upload-nightly-action GitHub Action from known commit shas that correspond to tagged releases. These can be updated automatically via Dependabot (#7306).
  • Update pre-commits repos (#7303).
  • The test suite can now be run without numpydoc installed (#7307).
  • Deal with parallel write warning from Pydata theme (#7311).
  • Test nightly wheel build with NumPy 2.0 (#7288).
  • Make it clear that funcs in _optical_flow_utils are private (#7328).
  • Update dependencies (spec 0) (#7335).
  • Follow-up cleaning & fixes for compatibility with NumPy 1 & 2 (#7326).
  • Replace ignored teardown with autouse fixture in test_fits.py (#7340).
  • Address new copy semantics & broadcasting in np.solve in NumPy 2 (#7341).
  • Ignore table of execution times by Sphinx gallery (#7327).
  • Allow a very small floating point tolerance for pearson test (#7356).
  • Update numpydoc to version 1.7 (#7355).
  • [pre-commit.ci] pre-commit autoupdate (#7365).
  • Simplify warning filters in test suite (#7349).
  • Build against NumPy >=2.0.0rc1 (#7367).
  • Remove ensure_python_version function (#7370).
  • Update GitHub actions to setup-python@v5, cache@v4, upload-artifact@v4, and download-artifact@v4 (#7368).
  • Update lazyloader to v0.4 (#7373).

Contributors

29 authors added to this release (alphabetically):

21 reviewers added to this release (alphabetically):

These lists are automatically generated, and may not be complete or may contain
duplicates.

Hmm, I think GitHub still picked up the links as mentions for every PR in the notes. 🙊

I will release from main and run changelist before releasing.

I can't see 0.23 on PyPI... Is everything fine?

I was exhausted from travel. Taking care of it now.

There was an issue with upload-artifact that caused 0.23.0 to only partially make it to pypi (see #7383). I fixed the issue and released 0.23.1.

No worries and thank you @jarrodmillman! If it makes your live easier in the future, I'm happy to give making a release a go. Might be a good idea to have multiple people per project that have experience with that.