Skip to content

scikit-image: Add version 0.26.0 - #2041

Merged
luhenry merged 7 commits into
mainfrom
github-actions/nightly-upgrade/scikit-image
Sep 20, 2026
Merged

luhenry merged 7 commits into
mainfrom
github-actions/nightly-upgrade/scikit-image

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Automatically generated by the nightly check_versions.py run.

scikit-image v0.25.2 -> v0.26.0

Every - version: entry added to docs/packages/scikit-image.yaml is built by this PR's own build-scikit-image.yml run; merging publishes the wheels.

@luhenry luhenry closed this Sep 17, 2026
@luhenry luhenry reopened this Sep 17, 2026
@luhenry
luhenry force-pushed the github-actions/nightly-upgrade/scikit-image branch from 43f1a25 to fdd7ce3 Compare September 18, 2026 05:48
Signed-off-by: riseproject-dev[bot] <330740410+riseproject-dev[bot]@users.noreply.github.com>
@riseproject-dev
riseproject-dev Bot force-pushed the github-actions/nightly-upgrade/scikit-image branch from 36798b8 to bb22626 Compare September 18, 2026 13:36
…thon-freethreading enable group

scikit-image v0.26.0's pyproject.toml sets [tool.cibuildwheel]
enable="cpython-freethreading", but cibuildwheel 4.2.0 (the version
this repo pins for riscv64 builds) no longer recognises that enable
group -- it errors "Failed to parse enable group" before any build
starts, on every interpreter, since [tool.cibuildwheel] is parsed as
a whole. Free-threaded builds (cp314t) no longer need an opt-in.
scikit-image's own next commit (2c3a869aebcc82c7802a9ec3d112df0878df2d4d,
"Drop 3.13t builds from cibuildwheel configuration (#8127)") drops the
same line with no replacement, confirming this is upstream's own bug.

patches/scikit-image/0.26.0/ backports that line removal, and
build-scikit-image.yml checks out python-wheels alongside the
upstream tag and applies it before the cibuildwheel step.
@github-actions

github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor Author
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-20 20:29 UTC

Upstream's default test-extras ("test", "optional") pulls in SimpleITK,
which has no riscv64 wheel and fails to build from source (CMake cannot
find PythonLibs on this platform). Upstream already excludes SimpleITK
on aarch64/win_arm64/musllinux via a "optional_free_threaded" test-extras
override; apply the same set for riscv64 (gotcha 336).
CIBW_TEST_EXTRAS is substituted directly into pip's requirement
string as <wheel>[<extras>]; pip requires a comma between extra
names, not a space. The space-separated value produced an invalid
requirement ("Expected comma between extra names") and failed
every matrix leg at the test-install step.
0.26.0's own test suite passes raw itertools.product() generators to
@pytest.mark.parametrize(); pytest 9.1 deprecates that shape, and
scikit-image's filterwarnings = ["error"] turns the deprecation into a
hard collection error on every interpreter (cp312/cp313/cp314/cp314t
all failed identically in run 35437213081). Not riscv64-specific:
upstream fixed this on main post-0.26.0 by wrapping the calls in
list(...) and bumping to pytest>=9, confirming 0.26.0 itself was never
tested against pytest 9.1 (gotcha 339: pin to the project's own
working ceiling instead of patching the test).
@luhenry
luhenry force-pushed the github-actions/nightly-upgrade/scikit-image branch from 71c54f0 to 322cf8f Compare September 19, 2026 18:29
With pytest<9.1 fixing the earlier collection-time error, all four
matrix legs (cp312/cp313/cp314/cp314t) still failed, now further in:
UNEXPECTED EXCEPTION: DeprecationWarning('Setting the shape on a NumPy
array has been deprecated in NumPy 2.5...') from
skimage/morphology/grayreconstruct.py:216, reached via the
h_maxima/h_minima/CircleModel/EllipseModel/ransac doctests.
reconstruction() assigns `rec_img.shape = ...` in place; NumPy 2.5
deprecation-warns on that, and scikit-image's own
filterwarnings=["error"] turns the warning fatal.

scikit-image 0.26.0's pyproject.toml requires numpy>=2.0 with no
upper bound, so cibuildwheel resolves the latest available release
(confirmed numpy==2.5.3 installed in run 35461367550) -- a version
that postdates 0.26.0 and triggers a deprecation the project was
never tested against. Same class of bug as the pytest<9.1 pin above
(gotcha 339, generalized by gotcha 355 to any unpinned test-venv
dependency): pin numpy below the version that introduced the new
deprecation, scoped to the test venv only, rather than patch
scikit-image's own library code.
Round 3 of the same unpinned-test-dependency bug class (gotcha 339/355):
scikit-image 0.26.0's pyproject.toml requires pillow>=10.1 and
scipy>=1.11.4 with no upper bound, so cibuildwheel resolves the latest
available Pillow (12.3.0) and SciPy (1.18.1).

- skimage/io/_plugins/pil_plugin.py calls the now-deprecated
  Image.getdata() (deprecated in Pillow 12.1.0 in favor of
  get_flattened_data()), reached via io.imread()/MultiImage and
  exercised by test_multi_image.py's test_len/test_slicing/
  test_concatenate.
- skimage/measure/fit.py and skimage/transform/_thin_plate_splines.py
  call scipy.spatial.minkowski_distance/distance_matrix, both
  deprecated as of SciPy 1.18.0 in favor of
  scipy.spatial.distance.minkowski/cdist, reached via the
  CircleModel and ThinPlateSplineTransform doctests.

filterwarnings=["error"] in scikit-image's own pytest config turns
both deprecations fatal. Pin the test venv below the version that
introduced each deprecation, same as the existing pytest<9.1 and
numpy<2.5 pins.
@luhenry
luhenry marked this pull request as ready for review September 20, 2026 20:28
@luhenry
luhenry merged commit 21115b9 into main Sep 20, 2026
12 checks passed
@luhenry
luhenry deleted the github-actions/nightly-upgrade/scikit-image branch September 20, 2026 20:29
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.

1 participant