Dask 2026.6.0 - DataFrame Merge Fix and Pandas 3.1 Prep
Dask 2026.6.0 shipped on June 11, 2026 with a fix for a silent DataFrame merge bug that dropped rows at specific partition counts. The release also patches Series.map for misaligned inputs, tightens quantile behavior, and starts adapting to upcoming Pandas 3.1 deprecations.
The full release notes and downloads are on the GitHub release page.
DataFrame merge and Series.map fixes
The headline bug fix is in Dataframe.merge. When a merge ran across exactly 128 or 129 partitions, Dask could lose data without raising an error (#12430). If your pipelines use high partition counts and merge heavily, upgrade before you trust merge output at those sizes.
Series.map(Series) also had a correctness gap. For non-co-aligned inputs, the mapped result could be wrong (#12432). The release adds more thorough tests around Series.map, with some cases still marked XFAIL while pandas nightly CI is sorted out (#12425).
add_prefix and add_suffix were repaired against pandas nightly and now support an explicit axis argument (#12414).
Array, quantile, and storage updates
quantile and nanquantile received fixes (#12380). On NumPy versions below 2.0, da.quantile with weights now raises NotImplementedError instead of failing in a less clear way (#12370).
Cholesky decomposition now supports complex dtypes (#12416), which matters for scientific workloads that keep complex valued arrays in dask.array. Empty arrays can be stored with zarr 3.2.0 (#12366), fixing a storage edge case that showed up after the zarr upgrade.
Security, packaging, and free threading
A Jinja2 autoescape change landed to block XSS in HTML reprs (#12423), then was reverted in the same release cycle (#12451). Net result for 2026.6.0: autoescape is not enabled. If you render Dask HTML reprs in untrusted contexts, read both pull requests before assuming you are covered.
PyPI publishing now has a dedicated release workflow (#12452). That is mostly maintainer facing, but it should make tagged releases show up on PyPI in a more predictable way.
For free threading builds, the msgpack C extension is enabled (#12439). That should cut serialization overhead in 3.14t style environments where the GIL is optional. CI also exercises Linux ARM (#12408) and Python 3.14 in additional environments (#12373), plus intermediate NumPy and pandas versions (#12372) and NumPy 1.26 with PyArrow 18 (#12445).
Upgrade notes
Pandas 3.1 will deprecate the inplace keyword on DataFrame.drop. Dask now reflects that deprecation (#12447). Plan to drop inplace=True in drop calls before pandas removes the argument.
Dependency floors moved: pyyaml is now required at version 5.4.1 or newer (#12382). numexpr was removed (#12384). import_optional_dependency now re raises ModuleNotFoundError instead of converting it to ImportError (#12381), which can change how missing optional packages surface in application code.
Most other items in this tag are CI refactors (Pixi migration (#12389), flaky test repairs, codecov bumps) and docstring cleanups. They do not change runtime behavior for typical users. See the Changelog for the full list.
Where to get it
- GitHub release page
- dask/dask repository
- Tag:
2026.6.0