Skip to content

Relax Dask, Sphinx and stale dependency pins - #1364

Merged
jeromekelleher merged 2 commits into
sgkit-dev:mainfrom
Billyzhang1229:relax-dependencies
Oct 27, 2026
Merged

jeromekelleher merged 2 commits into
sgkit-dev:mainfrom
Billyzhang1229:relax-dependencies

Conversation

@Billyzhang1229

@Billyzhang1229 Billyzhang1229 commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Dask has been capped at 2024.8.0 since #1248, because later releases made the main build very slow (#1247, tracked in #1267). The Sphinx < 9 and pandas < 3 caps were added in #1339, and the fsspec and ablog exclusions date from 2021 and 2022 (#625, #877).

This PR:

  • Requires Dask >= 2025.2.0, the oldest Dask that Xarray 2026.9.0 tests against (Xarray's minimum versions), and removes the upper bound. The minimum-version job now also installs Dask 2025.2.0, so the new floor is tested.
  • Fixes Tajimas_D with newer Dask, which no longer accepts a lazy scalar as the stop value of da.arange. The harmonic sums are now computed with map_blocks. The results are unchanged, and Tajimas_D no longer computes the allele counts when it is called.
  • Removes the Sphinx < 9 cap and the fsspec and ablog exclusions, and keeps pandas < 3.0 for now.
  • Refreshes uv.lock, which moves to Dask 2026.8.0, NumPy 2.5, Numba 0.68 and Sphinx 9.
  • Removes the Dask override from the docs workflows and the contributing guide. It installed Dask 2026.8.0, which is now the locked version.
  • Maps the zarr.core.group.StoreLike reference that sphinx-autodoc-typehints now generates to zarr.storage.StoreLike, where Zarr documents it, so StoreLike links to the Zarr docs. This replaces the nitpick entry that Sphinx 8 needed.
  • Moves the coverage pragma in TruncatedSVD to the branch for Dask releases without svd(full_matrices=...), which the locked Dask no longer runs.

With newer Dask, pairwise_distance still rebuilds and recompiles its Numba gufuncs on every call, which adds about 2 seconds per call for the correlation metric. Following PR #1365 will fix this and closes #1267, so it would be best to merge the two together.

Part of #1267.

Testing:

Newer Dask releases no longer accept a lazy scalar as the stop value of
da.arange, which Tajimas_D used to build the harmonic sums from the
number of sampled chromosomes. Compute the sums with map_blocks
instead. The results are unchanged, and Tajimas_D no longer computes
the allele counts when it is called, which older Dask did implicitly.
Require Dask >= 2025.2.0, the minimum Xarray 2026.9.0 tests against,
and drop the <= 2024.8.0 cap. Remove the Sphinx < 9 cap and the
obsolete fsspec and ablog exclusions, and keep pandas < 3.0 for now.
Refresh uv.lock, which moves to Dask 2026.8.0, NumPy 2.5, Numba 0.68
and Sphinx 9.

Drop the Dask override from the docs workflows and the contributing
guide, and install Dask 2025.2.0 in the minimum-version job so the new
floor is tested. Replace the obsolete StoreLike nitpick entry with a
mapping from the zarr.core.group.StoreLike reference that the newer
sphinx-autodoc-typehints generates to zarr.storage.StoreLike, where
Zarr documents it, and move the coverage pragma in TruncatedSVD to the
branch for Dask releases without svd(full_matrices=...).
@Billyzhang1229
Billyzhang1229 marked this pull request as ready for review October 26, 2026 23:37
@Billyzhang1229 Billyzhang1229 changed the title Relax dependencies Relax Dask, Sphinx and stale dependency pins Oct 27, 2026
@jeromekelleher
jeromekelleher merged commit f50577c into sgkit-dev:main Oct 27, 2026
22 checks passed
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.

Dask 2024.8.1 and later is very slow

2 participants