### 0.9.0 {small}`2023-04-11`

```{rubric} Features
```

- Added experimental support for dask arrays {pr}`813` {user}`syelman` {user}`rahulbshrestha`
- `obsm`, `varm` and `uns` can now hold [AwkwardArrays](https://awkward-array.org/quickstart.html) {pr}`647` {user}`giovp`, {user}`grst`, {user}`ivirshup`
- Added experimental functions {func}`anndata.experimental.read_dispatched` and {func}`anndata.experimental.write_dispatched` which allow customizing IO with a callback {pr}`873` {user}`ilan-gold` {user}`ivirshup`
- Better error messages during IO {pr}`734` {user}`flying-sheep`, {user}`ivirshup`
- Unordered categorical columns are no longer cast to object during {func}`anndata.concat` {pr}`763` {user}`ivirshup`

```{rubric} Documentation
```

- New tutorials for experimental features

  > - {doc}`/tutorials/notebooks/anndata_dask_array` – {pr}`886` {user}`syelman`
  > - {doc}`/tutorials/notebooks/{read,write}_dispatched` – {pr}`scverse/anndata-tutorials#17` {user}`ilan-gold`
  > - {doc}`/tutorials/notebooks/awkward-arrays` – {pr}`scverse/anndata-tutorials#15` {user}`grst`

- {doc}`File format description </fileformat-prose>` now includes a more formal specification {pr}`882` {user}`ivirshup`

- {doc}`/interoperability`: new page on interoperability with other packages {pr}`831` {user}`ivirshup`

- Expanded docstring more documentation for `backed` argument of {func}`anndata.read_h5ad` {pr}`812` {user}`jeskowagner`

- Documented how to use alternative compression methods for the `h5ad` file format, see {meth}`AnnData.write_h5ad() <anndata.AnnData.write_h5ad>` {pr}`857` {user}`nigeil`

- General typo corrections 😅 {pr}`870` {user}`folded`

```{rubric} Breaking changes
```

- The `AnnData` `dtype` argument no longer defaults to `float32` {pr}`854` {user}`ivirshup`
- Previously deprecated `force_dense` argument {meth}`AnnData.write_h5ad() <anndata.AnnData.write_h5ad>` has been removed. {pr}`855` {user}`ivirshup`
- Previously deprecated behaviour around storing adjacency matrices in `uns` has been removed {pr}`866` {user}`ivirshup`

```{rubric} Other updates
```

- Bump minimum python version to 3.8 {pr}`820` {user}`ivirshup`

```{rubric} Deprecations
```

- {meth}`AnnData.concatenate() <anndata.AnnData.concatenate>` is now deprecated in favour of {func}`anndata.concat` {pr}`845` {user}`ivirshup`

```{rubric} Bug fixes
```

- Fixed order dependent outer concatenation bug {pr}`904` {user}`ivirshup`, reported by {user}`szalata`
- Fixed bug in renaming categories {pr}`790` {user}`ivirshup`, reported by {user}`perrin-isir`
- Fixed IO bug when keys in `uns` ended in `_categories` {pr}`806` {user}`ivirshup`, reported by {user}`Hrovatin`
- Fixed `raw.to_adata` not populating `obs` aligned values when `raw` was assigned through the setter {pr}`939` {user}`ivirshup`
