← Back to all sparks
X

xarray

DEVOPS
Velocity0.0

N-D labeled arrays and datasets in Python

Xarray finished making DataTree first-class; now it's tuning the engines underneath.

labeled arraysdatatreezarr backenddaskindexescalendar versioning
Current state
Xarray ships on a monthly-ish calendar-versioned cadence with 16 to 25 contributors per release. The past year's arc has two halves: through late 2025 the hierarchical DataTree model was pushed into the top-level functions and a long-standing attribute default was flipped, and through 2026 the work moved down a layer into backends and indexes — automatic index creation, a backend fast path, minimum zarr bumped to 3.0, and support for Dask's query-optimizing expression arrays.
Where it's heading
Having settled the data model, xarray is now optimizing the paths in and out of it. Backend and index internals are where the recent releases spend their effort, and the dependency floors are being raised deliberately — zarr 3.0 as a minimum, numpy and pandas majors absorbed — to let older compatibility branches be deleted. The steady stream of silent-corruption and round-trip fixes against sharded zarr suggests that stack is still settling in real use.
Prediction
The next releases should continue on the monthly calendar with more index and backend work, and the Dask expression-array support is likely to move from newly added toward the default path as it proves out.

Recent moves

  1. 1mo ago

    2026.07.0: Dask query-optimizing expression arrays and new datetime accessors

    Adds support for Dask's query-optimizing expression arrays — the clearest step yet in the shift from data-model work to execution-path work — plus day_of_week and day_of_year accessors. It also unwinds a Coordinates.to_index performance regression, fixes zarr fill_value round-tripping, and cuts excessive memory use in drop_encoding.

    View source ↗
  2. 4mo ago

    2026.04.0: minimum zarr raised to 3.0, timedelta decoding deprecation finalized

    Raises the zarr floor to 3.0 and finalizes the decode_timedelta behavior change, both of which let older compatibility branches be dropped rather than carried. The rest is plotting and DataTree ergonomics: col_wrap='auto', an inherit='all_coords' option for DataTree.to_dataset, and a facetgrid_figsize setting.

    View source ↗
  3. 5mo ago

    2026.02.0: silent-corruption fix for dask writes to sharded zarr stores

    The headline fix stops silent data corruption when writing dask arrays to sharded zarr stores — the kind of bug that only surfaces once a backend is under real load, and a sign the zarr 3 path is still bedding in. Alongside it: a tokenize fast path that skips normalized chunks, negative-step indexer support, and 1D coords in NDPointIndex.

    View source ↗
  4. 6mo ago

    2026.01.0: automatic xindex creation and a backend fast path

    Indexes get the attention this cycle: xindexes are created automatically, set_xindex gains a drop_existing kwarg, and assert_identical now takes xindexes into account. A backend fast path and a keep_attrs behavior change for scalar xr.where round it out — internals work rather than new user-facing surface.

    View source ↗
  5. 8mo ago

    2025.12.0: HTTP engine default rolled back, DataTree lands in combine_nested

    Rolls back the default engine for HTTP URLs after the previous change proved disruptive, and extends DataTree support to combine_nested — continuing the pattern of teaching each top-level function about the hierarchical model one at a time. Development also moved to Pixi, which shows up across the CI-facing entries.

    View source ↗
  6. 8mo ago

    2025.11.0: attributes now preserved by default, DataTree reaches merge and concat

    ⚡ SPARK

    Two changes that every user feels: keep_attrs defaults to True, so metadata now survives operations that used to drop it, and DataTree becomes supported in merge and concat. Together they close out the data-model phase of xarray's roadmap and set up the backend and index work that follows in 2026.

    View source ↗