> [!NOTE]
> [This is our 10th year anniversary release!](https://github.com/pydata/xarray/discussions/8462) Thank you for your love and support.
This release brings the ability to use ``opt_einsum`` for :py:func:`xarray.dot` by default,
support for auto-detecting ``region`` when writing partial datasets to Zarr, and the use of h5py
drivers with ``h5netcdf``.
Thanks to the 19 contributors to this release:
Aman Bagrecha, Anderson Banihirwe, Ben Mares, Deepak Cherian, Dimitri Papadopoulos Orfanos, Ezequiel Cimadevilla Alvarez,
Illviljan, Justus Magin, Katelyn FitzGerald, Kai Muehlbauer, Martin Durant, Maximilian Roos, Metamess, Sam Levang, Spencer Clark, Tom Nicholas, mgunyho, templiert
What's Changed
* [skip-ci] dev whats-new by dcherian in https://github.com/pydata/xarray/pull/8349
* [skip-ci] Add benchmarks for Dataset binary ops, chunk by dcherian in https://github.com/pydata/xarray/pull/8351
* Add better ASV test cases for open_dataset by Illviljan in https://github.com/pydata/xarray/pull/8352
* Reduce dask tokenization time by martindurant in https://github.com/pydata/xarray/pull/8339
* Deprecate tuples of chunks? by max-sixty in https://github.com/pydata/xarray/pull/8341
* Remove unnecessary for loop when using get_axis_num by Illviljan in https://github.com/pydata/xarray/pull/8356
* Use namedarray repr in _array_api docstrings by Illviljan in https://github.com/pydata/xarray/pull/8355
* NamedArray.ndim can only be int by Illviljan in https://github.com/pydata/xarray/pull/8362
* docs: add searchable word "asterisk" by templiert in https://github.com/pydata/xarray/pull/8363
* add `.imag` and `.real` properties to `NamedArray` by andersy005 in https://github.com/pydata/xarray/pull/8365
* fix `NamedArray.imag` and `NamedArray.real` typing info by andersy005 in https://github.com/pydata/xarray/pull/8369
* Add chunkedduckarray to _typing by Illviljan in https://github.com/pydata/xarray/pull/8376
* Do not intercept left/right keys in HTML docs by DimitriPapadopoulos in https://github.com/pydata/xarray/pull/8379
* Docs page on interoperability by TomNicholas in https://github.com/pydata/xarray/pull/7992
* Fix typos found by codespell by DimitriPapadopoulos in https://github.com/pydata/xarray/pull/8375
* Use `opt_einsum` by default if installed. by dcherian in https://github.com/pydata/xarray/pull/8373
* Allow Variable type as dim argument to concat by maresb in https://github.com/pydata/xarray/pull/8384
* Remove duplicated navigation_with_keys in docs config by Illviljan in https://github.com/pydata/xarray/pull/8390
* Add duckarray test for np.array_api by Illviljan in https://github.com/pydata/xarray/pull/8391
* Fix sparse typing by Illviljan in https://github.com/pydata/xarray/pull/8387
* Correct typing for _sparsearray by Illviljan in https://github.com/pydata/xarray/pull/8395
* Port fix from pandas-dev/pandas55283 to cftime resample by spencerkclark in https://github.com/pydata/xarray/pull/8393
* Fix for Dataset.to_zarr with both `consolidated` and `write_empty_chunks` by Metamess in https://github.com/pydata/xarray/pull/8326
* Test masked array by Illviljan in https://github.com/pydata/xarray/pull/8396
* Better attr diff for `testing.assert_identical` by dcherian in https://github.com/pydata/xarray/pull/8400
* Add cross-links to API docstring from tutorial and user-guide by amanbagrecha in https://github.com/pydata/xarray/pull/8311
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/pydata/xarray/pull/8418
* Fix for date offset strings with resample loffset by kafitzgerald in https://github.com/pydata/xarray/pull/8422
* Declare Dataset, DataArray, Variable, GroupBy unhashable by maresb in https://github.com/pydata/xarray/pull/8392
* Add missing DataArray.dt.total_seconds() method by maresb in https://github.com/pydata/xarray/pull/8435
* Rename `to_array` to `to_dataarray` by max-sixty in https://github.com/pydata/xarray/pull/8438
* Remove keep_attrs from resample signature by dcherian in https://github.com/pydata/xarray/pull/8444
* Pin pint to >=0.22 by dcherian in https://github.com/pydata/xarray/pull/8445
* Remove PseudoNetCDF by dcherian in https://github.com/pydata/xarray/pull/8446
* remove `cdms2` by keewis in https://github.com/pydata/xarray/pull/8441
* Automatic region detection and transpose for `to_zarr()` by slevang in https://github.com/pydata/xarray/pull/8434
* Raise exception in to_dataset if resulting variable is also the name of a coordinate by mgunyho in https://github.com/pydata/xarray/pull/8433
* Added driver parameter for h5netcdf by zequihg50 in https://github.com/pydata/xarray/pull/8360
* Deprecate certain cftime frequency strings following pandas by spencerkclark in https://github.com/pydata/xarray/pull/8415
* [skip-ci] Small updates to IO docs. by dcherian in https://github.com/pydata/xarray/pull/8452
* Fix typos found by codespell by DimitriPapadopoulos in https://github.com/pydata/xarray/pull/8457
* Pin mypy < 1.7 by dcherian in https://github.com/pydata/xarray/pull/8458
* preserve vlen string dtypes, allow vlen string fill_values by kmuehlbauer in https://github.com/pydata/xarray/pull/7869
* migrate the other CI to python 3.11 by keewis in https://github.com/pydata/xarray/pull/8416
* 2023.11.0 Whats-new by dcherian in https://github.com/pydata/xarray/pull/8461
New Contributors
* maresb made their first contribution in https://github.com/pydata/xarray/pull/8384
* Metamess made their first contribution in https://github.com/pydata/xarray/pull/8326
* amanbagrecha made their first contribution in https://github.com/pydata/xarray/pull/8311
* kafitzgerald made their first contribution in https://github.com/pydata/xarray/pull/8422
* zequihg50 made their first contribution in https://github.com/pydata/xarray/pull/8360
**Full Changelog**: https://github.com/pydata/xarray/compare/v2023.10.1...v2023.11.0