New features added
* [python] Blockwise SciPy sparse and Arrow Table iterator (1792) (1858)
* [python] Outgest `uns` (1770) (1801)
* [python] Handle string columns with all-NaN values (1834) (1859)
* [python] Support default-coord reads of corner-written dense ND arrays (1810) (1812)
* [python] Allow uns-key restriction for ingest and outgest (1815) (1826)
* [python] Allow `X_layer_name=None` for outgest of X-free experiments (1830) (1832)
* [r] Write string attrs as UTF-8 (Python compatibility) (1843) (1850)
Minor changes
* [r] Set the package version to 1.5.0, and update NEWS.md (1856) (1860)
* [r] Unit-test queryability of enumerated columns (1884) (1885)
* [r] Depend on TileDB-R 0.21.3 (1882) (1883)
* [r] Install required tiledb package version from r-universe (1863) (1881)
* [r] Suppress deprecation warnings in `write_soma.DataFrame()` (1876) (1878)
* [r] Force exporting v3 assays with SeuratObject v5 installed (1809) (1841)
* [ci/r] No more "Last 13 lines of output:" in CI (1871) (1873)
* [ci/python] Make Python blockwise tests less resource-intensive (1877) (1879)
* [ci/python] Excess `pytest` duration (1866) (1868)
* [c++/python] Depend on core 2.17.3 and TileDB-Py 0.23.2 (1838) (1842)
* [c++] Remove `spdlog` requirement (1852) (1857)
* [c++/python] Expose `uri`, `result_order`, and `column_names` for `SOMAArray` (1814) (1827)
* [c++/python/r] Depend on core 2.17.4, tiledb-py 0.23.4, and tiledb-r 0.21.2 (1854) (1855)
Bug fixes
* [python] Enumerations-API refinement (1755) (1844)
* [python] Non-default measurement propagation on `from_anndata` (1820) (1821)
* [python/c++] Support enumerations with Pandas 2.0+
* [python/c++] Expanded enumeration support in `ArrowAdapter::to_arrow` (1848) (1861)
* [ci/python] Enable more verbose python unit test logging (1870) (1872)
* [r] Update `SOMADataFrame` creation and writes (1835) (1847)
* [c++] Correct `results_complete` (1816) (1831)
* [ci/c++] Avoid intermittent CI fail building `catch2` (1828) (1833)