Skip to content

Commit 7d43403

Browse files
keewisshoyer
authored andcommitted
release v2025.11.0 (pydata#10917)
* choose the right version number * formatting * move a breaking change entry to the right section * remove the deprecations section * missing entry * remove the empty internals section * another missing entry * more missing entries * remove empty line * bad merge * remove the empty documentation section * newline * use the old style of setting release dates * set the release date * formatting * back to bold * release summary
1 parent 8359b08 commit 7d43403

File tree

1 file changed

+109
-110
lines changed

1 file changed

+109
-110
lines changed

doc/whats-new.rst

Lines changed: 109 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@
66
What's New
77
==========
88

9-
.. _whats-new.2025.10.2:
9+
.. _whats-new.2025.11.0:
1010

11-
v2025.10.2 (unreleased)
12-
-----------------------
11+
v2025.11.0 (Nov 17, 2025)
12+
-------------------------
13+
This release changes the default for ``keep_attrs`` such that attributes are preserved by default, adds support for :py:class:`DataTree` in top-level functions, and contains several memory and performance improvements as well as a number of bug fixes.
14+
15+
Thanks to the 21 contributors to this release:
16+
Aled Owen, Charles Turner, Christine P. Chai, David Huard, Deepak Cherian, Gregorio L. Trevisan, Ian Hunt-Isaak, Ilan Gold, Illviljan, Jan Meischner, Jemma Jeffree, Jonas Lundholm Bertelsen, Justus Magin, Kai Mühlbauer, Kristian Bodolai, Lukas Riedel, Max Jones, Maximilian Roos, Niclas Rieger, Stephan Hoyer and William Andrea
1317

1418
New Features
1519
~~~~~~~~~~~~
@@ -18,111 +22,16 @@ New Features
1822
support :py:class:`DataTree` objects (:issue:`9790`, :issue:`9778`,
1923
:pull:`10849`).
2024
By `Stephan Hoyer <https://github.com/shoyer>`_.
21-
- The ``h5netcdf`` engine has support for pseudo ``NETCDF4_CLASSIC`` files, meaning variables and attributes are cast to supported types. Note that the saved files won't be recognized as genuine ``NETCDF4_CLASSIC`` files until ``h5netcdf`` adds support with version 1.7.0. (:issue:`10676`, :pull:`10686`).
25+
- The ``h5netcdf`` engine has support for pseudo ``NETCDF4_CLASSIC`` files, meaning variables and attributes are cast to supported types. Note that the saved files won't be recognized as genuine ``NETCDF4_CLASSIC`` files until ``h5netcdf`` adds support with version 1.7.0 (:issue:`10676`, :pull:`10686`).
2226
By `David Huard <https://github.com/huard>`_.
2327
- Support comparing :py:class:`DataTree` objects with :py:func:`testing.assert_allclose` (:pull:`10887`).
2428
By `Justus Magin <https://github.com/keewis>`_.
29+
- Add support for ``chunks="auto"`` for cftime datasets (:issue:`9834`, :pull:`10527`).
30+
By `Charles Turner <https://github.com/charles-turner-1>`_.
2531

2632
Breaking Changes
2733
~~~~~~~~~~~~~~~~
28-
29-
30-
Deprecations
31-
~~~~~~~~~~~~
32-
33-
34-
Bug Fixes
35-
~~~~~~~~~
36-
- Fix h5netcdf backend for format=None, use same rule as netcdf4 backend (:pull:`10859`).
37-
By `Kai Mühlbauer <https://github.com/kmuehlbauer>`_
38-
- ``netcdf4`` and ``pydap`` backends now use stricter URL detection to avoid incorrectly claiming
39-
remote URLs. The ``pydap`` backend now only claims URLs with explicit DAP protocol indicators
40-
(``dap2://`` or ``dap4://`` schemes, or ``/dap2/`` or ``/dap4/`` in the URL path). This prevents
41-
both backends from claiming remote Zarr stores and other non-DAP URLs without an explicit
42-
``engine=`` argument. (:pull:`10804`). By `Ian Hunt-Isaak <https://github.com/ianhi>`_.
43-
- Fix indexing with empty arrays for scipy & h5netcdf backends which now resolves to empty slices (:issue:`10867`, :pull:`10870`).
44-
By `Kai Mühlbauer <https://github.com/kmuehlbauer>`_
45-
- Fix error handling issue in ``decode_cf_variables`` when decoding fails - the exception is now re-raised
46-
correctly, with a note added about the variable name that caused the error (:issue:`10873`, :pull:`10886`).
47-
By `Jonas L. Bertelsen <https://github.com/jonaslb>`_
48-
49-
Performance
50-
~~~~~~~~~~~
51-
52-
- Speedup and reduce memory usage of :py:func:`concat`. Magnitude of improvement scales
53-
with size of the concatenation dimension. By `Deepak Cherian <https://github.com/dcherian>`_.
54-
:issue:`10864` :pull:`10866`.
55-
- Speedup and reduce memory usage when coarsening along multiple dimensions.
56-
By `Deepak Cherian <https://github.com/dcherian>`_. :pull:`10921`.
57-
58-
Documentation
59-
~~~~~~~~~~~~~
60-
61-
62-
Internal Changes
63-
~~~~~~~~~~~~~~~~
64-
65-
.. _whats-new.2025.10.1:
66-
67-
v2025.10.1 (October 7, 2025)
68-
----------------------------
69-
70-
This release reverts a breaking change to Xarray's preferred netCDF backend.
71-
72-
Breaking changes
73-
~~~~~~~~~~~~~~~~
74-
75-
- Xarray's default engine for reading/writing netCDF files has been reverted to
76-
prefer netCDF4 over h5netcdf over scipy, which was the default before
77-
v2025.09.1. This change had larger implications for the ecosystem than we
78-
anticipated. We are still considering changing the default in the future, but
79-
will be a bit more careful about the implications. See :issue:`10657` and
80-
linked issues for discussion. The behavior can still be customized, e.g., with
81-
``xr.set_options(netcdf_engine_order=['h5netcdf', 'netcdf4', 'scipy'])``.
82-
By `Stephan Hoyer <https://github.com/shoyer>`_.
83-
84-
New features
85-
~~~~~~~~~~~~
86-
87-
- Coordinates are ordered to match dims when displaying Xarray objects. (:pull:`10778`).
88-
By `Julia Signell <https://github.com/jsignell>`_.
89-
90-
Bug fixes
91-
~~~~~~~~~
92-
- Fix error raised when writing scalar variables to Zarr with ``region={}``
93-
(:pull:`10796`).
94-
By `Stephan Hoyer <https://github.com/shoyer>`_.
95-
96-
97-
98-
.. _whats-new.2025.09.1:
99-
100-
v2025.09.1 (September 29, 2025)
101-
-------------------------------
102-
103-
This release contains improvements to netCDF IO and the
104-
:py:func:`DataTree.from_dict` constructor, as well as a variety of bug fixes.
105-
In particular, the default netCDF backend has switched from netCDF4 to h5netcdf,
106-
which is typically faster.
107-
108-
Thanks to the 17 contributors to this release:
109-
Claude, Deepak Cherian, Dimitri Papadopoulos Orfanos, Dylan H. Morris, Emmanuel Mathot, Ian Hunt-Isaak, Joren Hammudoglu, Julia Signell, Justus Magin, Maximilian Roos, Nick Hodgskin, Spencer Clark, Stephan Hoyer, Tom Nicholas, gronniger, joseph nowak and pierre-manchon
110-
111-
New Features
112-
~~~~~~~~~~~~
113-
114-
- :py:func:`DataTree.from_dict` now supports passing in ``DataArray`` and nested
115-
dictionary values, and has a ``coords`` argument for specifying coordinates as
116-
``DataArray`` objects (:pull:`10658`).
117-
- ``engine='netcdf4'`` now supports reading and writing in-memory netCDF files.
118-
All of Xarray's netCDF backends now support in-memory reads and writes
119-
(:pull:`10624`).
120-
By `Stephan Hoyer <https://github.com/shoyer>`_.
121-
122-
Breaking changes
123-
~~~~~~~~~~~~~~~~
124-
125-
- **All xarray operations now preserve attributes by default** (:issue:`3891`, :issue:`2582`).
34+
- All xarray operations now preserve attributes by default (:issue:`3891`, :issue:`2582`).
12635
Previously, operations would drop attributes unless explicitly told to preserve them via ``keep_attrs=True``.
12736
Additionally, when attributes are preserved in binary operations, they now combine attributes from both
12837
operands using ``drop_conflicts`` (keeping matching attributes, dropping conflicts), instead of keeping
@@ -132,7 +41,7 @@ Breaking changes
13241

13342
.. code-block:: python
13443
135-
# Before (xarray <2025.09.1):
44+
# Before (xarray <2025.11.0):
13645
data = xr.DataArray([1, 2, 3], attrs={"units": "meters", "long_name": "height"})
13746
result = data.mean()
13847
result.attrs # {} - Attributes lost!
@@ -167,7 +76,7 @@ Breaking changes
16776
- Transformations: ``map()``, ``pipe()``, ``assign()``, ``assign_coords()``
16877
- Shape operations: ``expand_dims()``, ``squeeze()``, ``transpose()``, ``stack()``, ``unstack()``
16978

170-
**Binary operations - combines attributes with ``drop_conflicts``:**
79+
**Binary operations - combines attributes with** ``drop_conflicts``:
17180

17281
.. code-block:: python
17382
@@ -208,6 +117,96 @@ Breaking changes
208117
209118
By `Maximilian Roos <https://github.com/max-sixty>`_.
210119

120+
Bug Fixes
121+
~~~~~~~~~
122+
- Fix h5netcdf backend for format=None, use same rule as netcdf4 backend (:pull:`10859`).
123+
By `Kai Mühlbauer <https://github.com/kmuehlbauer>`_.
124+
- ``netcdf4`` and ``pydap`` backends now use stricter URL detection to avoid incorrectly claiming
125+
remote URLs. The ``pydap`` backend now only claims URLs with explicit DAP protocol indicators
126+
(``dap2://`` or ``dap4://`` schemes, or ``/dap2/`` or ``/dap4/`` in the URL path). This prevents
127+
both backends from claiming remote Zarr stores and other non-DAP URLs without an explicit
128+
``engine=`` argument (:pull:`10804`).
129+
By `Ian Hunt-Isaak <https://github.com/ianhi>`_.
130+
- Fix indexing with empty arrays for scipy & h5netcdf backends which now resolves to empty slices (:issue:`10867`, :pull:`10870`).
131+
By `Kai Mühlbauer <https://github.com/kmuehlbauer>`_
132+
- Fix error handling issue in ``decode_cf_variables`` when decoding fails - the exception is now re-raised
133+
correctly, with a note added about the variable name that caused the error (:issue:`10873`, :pull:`10886`).
134+
By `Jonas L. Bertelsen <https://github.com/jonaslb>`_.
135+
- Fix ``equivalent`` for numpy scalar nan comparison (:issue:`10833`, :pull:`10838`).
136+
By `Maximilian Roos <https://github.com/max-sixty>`_.
137+
- Support non-``DataArray`` outputs in :py:meth:`Dataset.map` (:issue:`10835`, :pull:`10839`).
138+
By `Maximilian Roos <https://github.com/max-sixty>`_.
139+
- Support ``drop_sel`` on ``MultiIndex`` objects (:issue:`10862`, :pull:`10863`).
140+
By `Aled Owen <https://github.com/owena11>`_.
141+
142+
Performance
143+
~~~~~~~~~~~
144+
145+
- Speedup and reduce memory usage of :py:func:`concat`. Magnitude of improvement scales
146+
with size of the concatenation dimension (:issue:`10864`, :pull:`10866`).
147+
By `Deepak Cherian <https://github.com/dcherian>`_.
148+
- Speedup and reduce memory usage when coarsening along multiple dimensions (:pull:`10921`)
149+
By `Deepak Cherian <https://github.com/dcherian>`_.
150+
151+
.. _whats-new.2025.10.1:
152+
153+
v2025.10.1 (Oct 7, 2025)
154+
------------------------
155+
156+
This release reverts a breaking change to Xarray's preferred netCDF backend.
157+
158+
Breaking changes
159+
~~~~~~~~~~~~~~~~
160+
161+
- Xarray's default engine for reading/writing netCDF files has been reverted to
162+
prefer netCDF4 over h5netcdf over scipy, which was the default before
163+
v2025.09.1. This change had larger implications for the ecosystem than we
164+
anticipated. We are still considering changing the default in the future, but
165+
will be a bit more careful about the implications. See :issue:`10657` and
166+
linked issues for discussion. The behavior can still be customized, e.g., with
167+
``xr.set_options(netcdf_engine_order=['h5netcdf', 'netcdf4', 'scipy'])``.
168+
By `Stephan Hoyer <https://github.com/shoyer>`_.
169+
170+
New features
171+
~~~~~~~~~~~~
172+
173+
- Coordinates are ordered to match dims when displaying Xarray objects. (:pull:`10778`).
174+
By `Julia Signell <https://github.com/jsignell>`_.
175+
176+
Bug fixes
177+
~~~~~~~~~
178+
- Fix error raised when writing scalar variables to Zarr with ``region={}``
179+
(:pull:`10796`).
180+
By `Stephan Hoyer <https://github.com/shoyer>`_.
181+
182+
183+
.. _whats-new.2025.09.1:
184+
185+
v2025.09.1 (Sep 29, 2025)
186+
-------------------------
187+
188+
This release contains improvements to netCDF IO and the
189+
:py:func:`DataTree.from_dict` constructor, as well as a variety of bug fixes.
190+
In particular, the default netCDF backend has switched from netCDF4 to h5netcdf,
191+
which is typically faster.
192+
193+
Thanks to the 17 contributors to this release:
194+
Claude, Deepak Cherian, Dimitri Papadopoulos Orfanos, Dylan H. Morris, Emmanuel Mathot, Ian Hunt-Isaak, Joren Hammudoglu, Julia Signell, Justus Magin, Maximilian Roos, Nick Hodgskin, Spencer Clark, Stephan Hoyer, Tom Nicholas, gronniger, joseph nowak and pierre-manchon
195+
196+
New Features
197+
~~~~~~~~~~~~
198+
199+
- :py:func:`DataTree.from_dict` now supports passing in ``DataArray`` and nested
200+
dictionary values, and has a ``coords`` argument for specifying coordinates as
201+
``DataArray`` objects (:pull:`10658`).
202+
- ``engine='netcdf4'`` now supports reading and writing in-memory netCDF files.
203+
All of Xarray's netCDF backends now support in-memory reads and writes
204+
(:pull:`10624`).
205+
By `Stephan Hoyer <https://github.com/shoyer>`_.
206+
207+
Breaking changes
208+
~~~~~~~~~~~~~~~~
209+
211210
- :py:meth:`Dataset.update` now returns ``None``, instead of the updated dataset. This
212211
completes the deprecation cycle started in version 0.17. The method still updates the
213212
dataset in-place. (:issue:`10167`)
@@ -289,8 +288,8 @@ Internal Changes
289288

290289
.. _whats-new.2025.09.0:
291290

292-
v2025.09.0 (September 2, 2025)
293-
------------------------------
291+
v2025.09.0 (Sep 2, 2025)
292+
------------------------
294293

295294
This release brings a number of small improvements and fixes, especially related
296295
to writing DataTree objects and netCDF files to disk.
@@ -366,8 +365,8 @@ Internal Changes
366365

367366
.. _whats-new.2025.08.0:
368367

369-
v2025.08.0 (August 14, 2025)
370-
----------------------------
368+
v2025.08.0 (Aug 14, 2025)
369+
-------------------------
371370

372371
This release brings the ability to load xarray objects asynchronously, write netCDF as bytes, fixes a number of bugs, and starts an important deprecation cycle for changing the default values of keyword arguments for various xarray combining functions.
373372

@@ -443,8 +442,8 @@ Performance
443442

444443
.. _whats-new.2025.07.1:
445444

446-
v2025.07.1 (July 09, 2025)
447-
--------------------------
445+
v2025.07.1 (Jul 09, 2025)
446+
-------------------------
448447

449448
This release brings a lot of improvements to flexible indexes functionality, including new classes
450449
to ease building of new indexes with custom coordinate transforms (:py:class:`indexes.CoordinateTransformIndex`)

0 commit comments

Comments
 (0)