This release adds support for Dask's query-optimizing expression arrays, along
with new day_of_week and day_of_year datetime accessor attributes. It
also includes a number of bug fixes, notably for a performance regression in
:py:meth:Coordinates.to_index, Zarr fill_value round-tripping, and
excessive memory use in drop_encoding.
Thanks to the 25 contributors to this release:
Davis Bennett, Deepak Cherian, Ian Hunt-Isaak, Illviljan, Jonathan Dung, Julia
Signell, Justus Magin, Kai Mühlbauer, MJSHANG, Mark Harfouche, Mathias Hauser,
Matt Van Horn, Matthew Rocklin, Max Jones, Maximilian Roos, Nick Hodgskin,
S Anand, Spencer Clark, Sreekant Baheti, Timothy Hodson, Tom Nicholas,
Vincent Gao, Wali Reheman, Wei Ji and eeshsaxena
What's Changed
- Empty section at top of whats-new by @jsignell in #11299
- Fix performance regression in Coordinates.to_index by @thodson-usgs in #11306
- Document Dataset.load_async and DataArray.load_async by @TomNicholas in #11311
- Fix assert_equal with check_dim_order=False for mixed dimension orders by @max-sixty in #10718
- work around a bug in pixi that disallows custom PyPI servers by @keewis in #11331
- undo the pin on the pixi version by @keewis in #11334
- Objects satisfying the
core.types.Lockinterface should also be hashable by @jonathandung in #11333 - fix: ensure fill_value for zarr v3 arrays round-trips by @d-v-b in #11345
- Mark
test_roundtrip_pandas_dataframe_datetimeas an expected failure by @spencerkclark in #11365 - Fix mypy failure: drop dead zarr<3 branch in invalid-store test by @hmaarrfk in #11366
- ci: move pandas/scipy stubs to pypi deps by @maxrjones in #11370
- Fix Upstream CI NaT issues by @ianhi in #11340
- pin pixi until the nightly ci resolves again by @keewis in #11372
- refactor: remove dead zarr<3 (has_zarr_v3) guards in tests by @mvanhorn in #11376
- Preserve step in RangeIndex.arange and slicing by @mokashang in #11362
- DOC: Clarify docstring of
Dataset.loadby @VeckoTheGecko in #11388 - Use to_numpy in ImplicitToExplicitIndexingAdapter.array method by @weiji14 in #11381
- ci: add Python 3.14 test environment to CI matrix by @mvanhorn in #11377
- Silence datetime accessor deprecation warnings by @spencerkclark in #11270
- Support query optimization with Dask expression arrays by @mrocklin in #11382
- debug the nightly CI by @keewis in #11395
- Add nodask constraint for test-py314-no-dask environment by @weiji14 in #11385
- Fix RangeIndex.linspace with num=1 by @sanand0 in #11401
- Fix drop_encoding to avoid copying data (GH#11390) by @wali-reheman in #11394
- fix: handle
OSErrorin_get_mtimefor non-file paths by @gaoflow in #11392 - Add dask expr protocol for variables by @mrocklin in #11423
- Add map_blocks and some testing support for array query expressions by @mrocklin in #11398
- Fix incorrect parameter name in cumulative() docstrings by @Sreekant13 in #11425
- MAINT: remove pandas 2.2 compat (incl. infer_freq) by @mathause in #11430
- Adapt to coming
pd.infer_freqbehavior change by @spencerkclark in #11434 - Adapt
test_dataset_math_errorsfor coming NumPy behavior change by @spencerkclark in #11435 - DOC fix parameter name in CoordinateTransform.reverse docstring by @eeshsaxena in #11433
- open an issue even with a missing log file by @keewis in #11436
- zarr deprecation: enums becoming string literals by @keewis in #11438
- resolve the sparse errors by @keewis in #11439
- Release notes for v2026.07.0 by @shoyer in #11445
New Contributors
- @thodson-usgs made their first contribution in #11306
- @jonathandung made their first contribution in #11333
- @mvanhorn made their first contribution in #11376
- @mokashang made their first contribution in #11362
- @sanand0 made their first contribution in #11401
- @wali-reheman made their first contribution in #11394
- @gaoflow made their first contribution in #11392
- @Sreekant13 made their first contribution in #11425
- @eeshsaxena made their first contribution in #11433
Full Changelog: v2026.04.0...v2026.07.0