Weekly reports on scikit-image development (2024)

This is our 2024’s calendar of community management. scikit-image maintainers take on a rotating duty to take a first look at all contributions (PRs and issues) from the community, label them and ping relevant reviewers. We also summarize the week’s development activity here. You can follow updates by subscribing to the RSS feed of the topic.

Scripts for generating the reports are available in this repository. If you have feedback on a report or specific item, please don’t use this topic and comment on the appropriate issue or PR (or create a new topic on GitHub or here).

For 2024, let’s try coordinating community duty in Re-start community desk.


Note: We had this practice before (see 2022's calendar of community management · Issue #6165 · scikit-image/scikit-image · GitHub) but paused it for some time. I decided to move it over from GitHub so we don’t pollute our issue and PR history with references. I think this discussion forum is also a more fitting place in general.

2 Likes

Jul 29 to Aug 05, 2024 (week 31)

While this week seemed to be on the quieter side, there were still a few things getting done or discussed.

CI testing for the new free-threaded Python 3.13 was added (#7463) and a follow-up WIP PR seeks to upload nightlies (#7481).

It was discussed, whether we should drop instructions for setting up the development environment with conda-forge (#7480).

A part of our CI has been failing due to a sphinx warning for some time now. I’m trying to address it in now #7486.

New pull requests

:open_book: #7481 Add CI to release nightly free-threaded wheels
:closed_book: #7482 FIX Use python3 in Meson version script shebang
:closed_book: #7480 Recommend only venv-based dev environment (drop conda)
:closed_book: #7483 Fixup conda development installation instructions
:open_book: #7486 Address autosummary.import_cycle warning
:open_book: #7487 Remove deprecated plot_matches from module and gallery

Updated pull requests (state unchanged)

:open_book: #7309 Create new 3D bioimaging example.
:open_book: #7477 Improved the documentation of the restoration.richardson_lucy deconvolution function

Merged pull requests

:closed_book: #7463 Add CI to test scikit-image against free-threaded Python 3.13
:closed_book: #7482 FIX Use python3 in Meson version script shebang
:closed_book: #7483 Fixup conda development installation instructions
:closed_book: #7469 Prevent skimage.morphology.thin from modifying input array

Closed pull requests (not merged)

:closed_book: #7480 Recommend only venv-based dev environment (drop conda)

New issues

:open_book: #7485 autosummary.import_cycle warning breaks doc build on Windows CI
:open_book: #7484 Backend QtAgg is interactive backend. Turning interactive mode on.

Updated issues (state unchanged)

:open_book: #7464 Tracker: free-threaded Python support
:open_book: #7478 Setting up conda environment for development of skimage throws a package not found error

Closed issues

:closed_book: #7457 morphology.thin change the original image from version 0.23

4 Likes

Aug 05 to Aug 12, 2024 (week 32)

This week we finally, after some unresolved issues with Dask 2024.8.0 (#7491), got our CI to turn green again. :crossed_fingers: The other CI issue that was taking some time to resolve (#7485) was also due to upstream and is also only partially resolved.

I also took some time to dig through our skimage2 proposed changes and update a few things. There are quite a few items that don’t have to be done in context of skimage2, like renaming img_as_* to rescale_to_* (#6318), I think.

scikit-image is having its own sprint in the wake of the upcoming EuroSciPy conference. We’ve started preparing an agenda which we will publish once it’s more fleshed out.

Shoutout to a huge ongoing cleanup to our skeletonize module and related testing suite (#7459).

New pull requests

:open_book: #7488 Added option to not normalize the output from the HOG function
:closed_book: #7490 Improve robustness of _dynamic_max_trials used for ransac
:open_book: #7487 Remove deprecated plot_matches from module and gallery
:closed_book: #7486 Address autosummary.import_cycle warning
:open_book: #7492 Uncomment currentmodule directive again
:closed_book: #7493 Temporarily exclude Dask 2024.8.0 to fix CI

Merged pull requests

:closed_book: #7486 Address autosummary.import_cycle warning
:closed_book: #7493 Temporarily exclude Dask 2024.8.0 to fix CI

Closed unmerged pull requests

:closed_book: #7490 Improve robustness of _dynamic_max_trials used for ransac

Other active pull requests

:closed_book: #7469 Prevent skimage.morphology.thin from modifying input array
:open_book: #7481 Add CI to release nightly free-threaded wheels
:open_book: #7479 Feature/add rotation to draw ellipsoid
:open_book: #6318 rename img_as_* to rescale_to_*
:open_book: #7065 Fix dynamic max trials of RANSAC
:open_book: #7477 Improved the documentation of the restoration.richardson_lucy deconvolution function
:open_book: #7459 Refactored tests for skeletonize

New issues

:closed_book: #7489 Strange description in docstring
:open_book: #7491 filters.threshold_triangle fails for Dask 2024.8 with “unkown chunk size”
:open_book: #7485 autosummary.import_cycle warning breaks doc build on Windows CI

Closed issues

:closed_book: #7489 Strange description in docstring
:closed_book: #4406 API: disk vs circle vs circle_perimeter
:closed_book: #7246 Inconsistency in Default Values of shift_x and shift_y in skimage.filters.rank.mean_percentile
:closed_book: #7279 Error installing botright due to scikit_image-0.21.0.tar.gz metadata preparation

Other active issues

:open_book: #7478 Setting up conda environment for development of skimage throws a package not found error
:open_book: #7484 Backend QtAgg is interactive backend. Turning interactive mode on.
:open_book: #7315 grayreconstruct.reconstruction incorrect when footprint offset is specified
:open_book: #7471 Decide on the GitHub Projects
:open_book: #7474 Unexpected Core Dump When Executing inpaint_biharmonic
:open_book: #7475 Explore faster implementations of median filter


Open pull requests: +3
Open issues: -1

1 Like

Aug 12 to Aug 19, 2024 (week 33)

We merged quite a few PRs this week. The refactor in #7459, the new free-threaded wheels in #7481 and the fix in #7065 are worth highlighting.

Also, we are busy preparing the tutorial for EuroScipy next week right now and hoping that Pyodide will make an alpha release with our most recent skimage version in time. That might take priority over other stuff, at least for me.

New open pull requests (1)

:open_book: #7496 Fix dynamic max trials of RANSAC (follow up)

Closed pull requests (6)

:closed_book: #7065 Fix dynamic max trials of RANSAC
:closed_book: #7459 Refactored tests for skeletonize
:closed_book: #7481 Add CI to release nightly free-threaded wheels
:closed_book: #7487 Complete deprecation of plot_matches
:closed_book: #7492 Uncomment currentmodule directive again
:closed_book: #7495 Remove unused and deprecated dependency pytest-runner

Other active pull requests (3)

:open_book: #6713 Add new property circularity to skimage.measure.regionprops
:open_book: #7309 Create new 3D bioimaging example.
:open_book: #7479 Feature/add rotation to draw ellipsoid

New open issues (1)

:open_book: #7497 test_ellipse_model_estimate_failers fails on master for Mac M1 (arm64)

Closed issues (6)

:closed_book: #7301 morphology.flood fails for boolean image type if tolerance is set
:closed_book: #7474 Unexpected Core Dump When Executing inpaint_biharmonic
:closed_book: #7478 Setting up conda environment for development of skimage throws a package not found error
:closed_book: #7494 pytest-runner deprecated?
:closed_book: #7498 About the PyWavelets not installed error
:closed_book: #7499 Error in saving the resulting image of denoise wavelet

Other active issues (4)

:open_book: #7282 Test and prepare for NumPy 2.0
:open_book: #7315 grayreconstruct.reconstruction incorrect when footprint offset is specified
:open_book: #7377 Cannot catch MemoryError
:open_book: #7458 morphology.binary_closing() is ~50x slower than morphology.closing(). The ratio should be reversed


Open pull requests: -4
Open issues: -2

1 Like

I missed that the weekly reports are back! So awesome :heart: :muscle:

1 Like

Aug 25 to Sep 01, 2024 (week 35)

Last week, a few of us attended the EuroSciPy conference in Szczecin, Poland. And on the weekend after the conference we had a rare sprint on scikit-image!

Unsurprisingly, we got work a lot on scikit-image and the repo saw a lot of activity. Though, the biggest progress is probably not visible yet (we managed to go through through the entire skimage2 list! We found a bunch of items that we can actually do with conventional deprecation cycles, and clarified / updated the remaining ones. I’m really happy with that progress!

In parallel, @eriknw and @betatim started work on a prototype for dispatching scikit-image to backends. Early progress can be found in Basic infrastructure for dispatching to a backend by betatim · Pull Request #7520 · scikit-image/scikit-image · GitHub. Exciting and very experimental stuff! Hopefully, it sticks this time.

New open pull requests (5)

  • #7513 Adding dispatching to scikit-image
  • #7517 Fix docstring math rendering in manders_coloc_coeff
  • #7518 Further document use of regionprops function and fix terms.
  • #7521 promote 8 and 16-bit integer dtypes to float32
  • #7523 Improve docstring for Wiener restoration function.

Closed pull requests (15)

  • #7434 Rework installation instructions
  • #7438 Add sdist check to spin sdist
  • #7496 Fix dynamic max trials of RANSAC (follow up)
  • #7501 Update deprecated configuration
  • #7505 Move from CITATION.bib to CITATION.cff
  • #7507 Bump spin version to 0.11
  • #7508 Deprecate io.{imshow,imshow_collection,show}
  • #7509 Don’t test thresholding funcs for Dask compatibility
  • #7510 Fix build dependency
  • #7511 Update pydata-sphinx-theme
  • #7512 Ensure only a single label is present
  • #7514 Add spin install
  • #7515 Use correct spin test --coverage in contribution guide
  • #7519 Reorder items in TODO list.
  • #7522 Tweak advice to new developers; remove AI warning

Other active pull requests (8)

  • #7309 Create new 3D bioimaging example.
  • #7465 Gray-scale Hough Line Transform
  • #7466 WIP: cucim backend for skimage
  • #7477 Improved the documentation of the restoration.richardson_lucy deconvolution function
  • #7479 Feature/add rotation to draw ellipsoid
  • #7503 Feature/use scipy rotation
  • #7065 Fix dynamic max trials of RANSAC
  • #7226 Silence PyData theme warning about new default for “navigation_with_keys”

New open issues (2)

  • #7506 Module Not Found Error
  • #7516 Math display rendering is broken.

Closed issues (3)

  • #7437 tools/check_sdist.py is currently unused
  • #7491 filters.threshold_triangle fails for Dask 2024.8 with “unkown chunk size”
  • #7500 One of our doc dependencies brings in numpy < 2

Other active issues (7)

  • #2755 Change regionprops so that indices match labels
  • #4876 Terminology: n_jobs vs num_workers vs ncpu etc.
  • #7238 Breaking change suggestions for morphological operators
  • #7330 Gallery examples use Matplotlib in a hybrid way (explicit vs. implicit interfaces).
  • #7425 [0.23.2] test_active_contour_model.py fails on mips64el
  • #7458 morphology.binary_closing() is ~50x slower than morphology.closing(). The ratio should be reversed
  • #7504 io.show only shows the last image on macOS (M2)

Open pull requests: +1
Open issues: -1

3 Likes

Sep 23 to Sep 30, 2024 (week 39)

We had a bit of a break with weekly reports. I’m quite happy with progress this week. While we didn’t merge any particular high profile PR (yet), we got started or progressed in other ways.

I’m excited to highlight, that there’s work on a small developer grant proposal for the dispatching project which should be submitted today. :smiley:

Of note might also be the deprecation of our skimage.io plugin infrastructure (#7353) which should be close to merge now. We want to delegate this to more focused libraries like imageio instead.

New open pull requests (5)

  • #7549 Render paragraphs in dormant message
  • #7551 Account for empty arrays when counting segments per contour level.
  • #7552 Preserve value of deprecated parameters without replacement
  • #7555 Use pytest config in pyroject.toml in CI
  • #7557 Remove unused PYX files in io/_plugins

Closed pull requests (4)

  • #7477 Improved the documentation of the restoration.richardson_lucy deconvolution function
  • #7534 Improve stability of local_minima
  • #7556 Don’t use deprecated io.show and io.imshow
  • #7558 Hide traceback inside assert_stacklevel

Other active pull requests (7)

  • #7007 Add lazy loading to morphology submodule
  • #7035 Add lazy loading to skimage.segmentation
  • #7353 Deprecate skimage.io plugin infrastructure
  • #7520 Basic infrastructure for dispatching to a backend
  • #7541 Feature/enhance plot matched features
  • #7544 feat: add mask parameter to graycomatrix function for selective computation
  • #7548 Improve performance of peak_local_max and feature detectors that rely on it

New open issues (4)

  • #7550 META Backend dispatching discussion
  • #7553 io.imread_collection_wrapper should be private / deprecated
  • #7554 Pytest config in pyproject.toml isn’t used in CI
  • #7559 Inquiry About Deploying scikit-image Website in China

Closed issues (1)

  • #7530 local_minima output wrong with numpy 2.0.2

Other active issues (5)

  • #7361 Collections attribute is used in gallery but was deprecated in Matplotlib 3.8.
  • #7364 Feature smaller, focused gallery examples with a lower priority
  • #7504 io.show only shows the last image on macOS (M2)
  • #7543 Back-references for sphinx gallery examples are missing in dev docs
  • #5011 No DLL module _fblas when importing skimage.io

Open pull requests: +3
Open issues: +3

1 Like

Sep 30 to Oct 07, 2024 (week 40)

This week we closed quite a few open PRs and are now down by: -1. :sweat_smile:

We are also in the middle of preparation of the 0.25 release. 2 release candidates are already out and you can already check out the preliminary release notes. A few items are still left open on the 0.25 milestone; help is appreciated!

New open pull requests (4)

  • #7566 Replace square, rectangle, cube with footprint_rectangle
  • #7569 Ensure that RegionProperties can be deserialized with pickle
  • #7575 Build cp313t linux wheels
  • #7576 Use scipy.sparse arrays

Closed pull requests (14)

  • #7452 [pre-commit.ci] pre-commit autoupdate
  • #7551 Account for empty arrays when counting segments per contour level.
  • #7552 Preserve value of deprecated parameters without replacement
  • #7557 Remove unused PYX files in io/_plugins
  • #7560 Update pre-commit versions
  • #7561 Drop Python 3.9 support
  • #7562 Update minimum dependencies (SPEC 0)
  • #7565 Support Python 3.13
  • #7567 Fix missing minigalleries by using full names in directives
  • #7570 Test NX 3.4rc0
  • #7571 Build Python 3.13 wheels
  • #7572 Remove deprecated skeletonize_3d
  • #7573 Update TODO
  • #7574 Remove deprecated gaussian output parameter

Other active pull requests (19)

  • #7071 Fix several watershed issues (off-center markers, watershed_line)
  • #7353 Deprecate skimage.io plugin infrastructure
  • #7366 Fix Laplacian filter wrong sign #7357
  • #7517 Fix docstring math rendering in manders_coloc_coeff
  • #7520 Basic infrastructure for dispatching to a backend
  • #7541 Feature/enhance plot matched features
  • #7544 feat: add mask parameter to graycomatrix function for selective computation
  • #7547 MacOS runners seem to have libomp already installed
  • #7548 Improve performance of peak_local_max and feature detectors that rely on it
  • #7555 Use pytest config in pyroject.toml in CI
  • #4612 Allow very large values in relabel_sequential
  • #7297 Fix example section in docstring of skimage.feature.graycomatrix
  • #7375 New GLCM properties to graycoprops
  • #7453 Account for np.bincount expecting arch-specific np.intp
  • #7477 Improved the documentation of the restoration.richardson_lucy deconvolution function
  • #7487 Complete deprecation of plot_matches
  • #7505 Use new CITATION.cff instead of CITATION.bib
  • #7508 Deprecate io.{imshow,imshow_collection,show}
  • #7512 Ensure only a single type: label is present in PRs

New open issues (3)

  • #7563 skimage.restoration.utf module should be private
  • #7564 Image deconvolution example - fix to make the example code scientifically sensible
  • #7568 stacklevel used by deprecate_func seems wrong

Closed issues (2)

  • #7361 Collections attribute is used in gallery but was deprecated in Matplotlib 3.8.
  • #7543 Back-references for sphinx gallery examples are missing in dev docs

Other active issues (4)

  • #6465 skimage.measure._regionprops.RegionProperties is not serializable. RecursionError is thrown from getattr
  • #7357 filters.laplace result has the wrong sign
  • #7363 Potential Enhancements and Clarifications for Wiener Deconvolution (restoration.wiener)
  • #7559 Inquiry About Deploying scikit-image Website in China

Open pull requests: -1
Open issues: +1

1 Like

Oct 06 to Oct 21, 2024 (weeks 41 & 42)

This time a report covering the last two weeks. I wasn’t around during the second one but people where busy nevertheless. In light of the preparation of version 0.25, many of the activity are infrastructure and maintenance related. But there’s other stuff too:

There’s an active effort to move to the new scipy.sparse API that uses arrays instead of matrices (#7576).

We also got two significant and complicated fixes to our whatershed function merged (#7071)!

Note, the lists below are now sorted by the number of (review comments). Items with fewer comments – perhaps in need of more attention – are listed first (7b8060c).

New open pull requests (3)

  • #7575 Build cp313t linux wheels
  • #7579 Build sphinx documentation with parallel jobs
  • #7576 Use scipy.sparse arrays

Merged pull requests (11)

  • #7572 Remove deprecated skeletonize_3d
  • #7573 Update TODO
  • #7574 Remove deprecated gaussian output parameter
  • #7578 Test Py3.13 on windows
  • #7549 Render paragraphs in dormant message
  • #7571 Build Python 3.13 wheels
  • #7582 CI: bump macos image pin from 12 to 13
  • #7569 Ensure that RegionProperties can be deserialized with pickle
  • #7581 Fix formatting issues
  • #7580 Update ruff linter / formatter
  • #7071 Fix several watershed issues (off-center markers, watershed_line)

Closed pull requests (0)

none

Other active pull requests (15)

  • #7392 Use more complete list of _integer_types for convert
  • #7396 Fix download-artifact@v4 error
  • #7547 MacOS runners seem to have libomp already installed
  • #7548 Improve performance of peak_local_max and feature detectors that rely on it
  • #7250 Add explicit noexcept to address Cython 3.0 warnings
  • #7302 Use num_workers instead of alternate parameter names
  • #7462 Fix CI tests with minimal dependencies and make dependency resolution more robust
  • #7488 Added option to not normalize the output from the HOG function
  • #7544 feat: add mask parameter to graycomatrix function for selective computation
  • #7353 Deprecate skimage.io plugin infrastructure
  • #7566 Replace square, rectangle, cube with footprint_rectangular
  • #7375 New GLCM properties to graycoprops
  • #7520 Basic infrastructure for dispatching to a backend
  • #7541 Feature/enhance plot matched features
  • #4612 Allow very large values in relabel_sequential

New open issues (3)

  • #7584 Implement color quantization (e.g. rgb2ind)
  • #7585 KeyError in _regionprops.py during Documentation Installation (__debug__) in Python 3.13
  • #7577 Skimage.graph: knight’s move neighbourhood

Closed issues (5)

  • #7583 macOS 12 runner image will be removed by 2024-03-12
  • #7559 Inquiry About Deploying scikit-image Website in China
  • #6632 Off-centre markers for watershed
  • #4240 Different label boundaries with skimage.morphology.watershed when using watershed_line=True and watershed_line=False
  • #6465 skimage.measure._regionprops.RegionProperties is not serializable. RecursionError is thrown from __getattr__

Other active issues (4)

  • #7399 libatlas 3.10.3 related failures on debian
  • #7425 [0.23.2] test_active_contour_model.py fails on mips64el
  • #7318 Allow passing one value per axis of the input image as the min_distance parameter of skimage.feature.peak_local_max
  • #7030 Unable to install scikit-image due to metadata error

Open pull requests: -8
Open issues: -2
Total active items: 41

1 Like