Deprecation notices
As noted in 2407, there will be new `shape` support in the upcoming TileDB-SOMA 1.14, with some impact to user API in the append-to-experiment use-case.
As noted in 2843, `TileDBCreateOptions` may no longer be passed to `write` methods.
* [Backport release-1.13] [python] Implement scheduled removal of `TileDBCreateOptions` being passed to `write` methods by github-actions in 2843
* [python] Deprecate `tiledb_ctx` usage in `TileDBSOMAContext` by nguyenv in 2693
* [python] Deprecate `tiledb.Filter` getters in `PlatformConfig` by nguyenv in 2720
* [r/python] Deprecation notices for `used_shape` by johnkerl in 2834
* [r] Use `.Deprecated` for `used_shape` in R by johnkerl in 2835
New features added
* [python] Optionally drop unused categories in `ExperimentAxisQuery.to_anndata` by nguyenv in 2811
* [Backport release-1.13] [python] X-write performance improvement for the non-append case by github-actions in 2848
* [Backport release-1.13] [python] Add `CollectionBase.members` by github-actions in 2849
* [c++/python] Add `reopen` for `SOMAArray` and `SOMAGroup` by nguyenv in 2802
* [r] Connect re-indexer to blockwise iterator by mojaveazure in 2742
* [r] Add `drop_levels` to `SOMAExperimentAxisQuery` -> ecosystem outgestors by mojaveazure in 2825
Bug fixes
* [Backport release-1.13] [python] Use original error message when re-raising with `DoesNotExistError` by github-actions in 2844
* [python] Support `tiledbsoma.io.update_obs` with post-nullable non-string attributes by johnkerl in 2719
* [python] Allow platform config to set both extent and filter by johnkerl in 2808
* [python] Improve error message on non-constant query-condition RHS by johnkerl in 2831
* [python] More gracefully handle invalid operators in query-condition parser by johnkerl in 2830
* [python] Allow platform config to set extent and filter by johnkerl in 2808
* [c++] Fix enum-of-bool leveling by johnkerl in 2723
Minor changes
* Use core 2.25, TileDB-Py 0.31, TileDB-R 0.29 by johnkerl in 2813
* [Backport release-1.13] [python] Debug CI `mypy` failures related to ` type: ignore[misc]` by github-actions in 2845
* [Backport release-1.13] [python] Misc. ingest/outgest code-neaten improvements by github-actions in 2847
* [Backport release-1.13] [python] Ingest/outgest round-trip improvements by github-actions in 2850
* [r] Prep for TileDB-SOMA 1.13 (`release-1.13` branch) by johnkerl in 2837
* [python/r] Update lifecycle tags to "Maturing" by johnkerl in 2807
* [python] Pin to numpy < 2.0 for 1.12 release by johnkerl in 2745
* [python] Add `pybind11` bindings for `SOMAGroup` 2/5 by nguyenv in 2732
* [python] Use bindings for `SOMAGroup` 3/5 by nguyenv in 2735
* [python] Replace `TileDBObject` with `SOMAObject`; Remove `tiledb.TileDBError` usage 4/5 by nguyenv in 2736
* [python] Remove tiledb-py from top-level src (sans `io` and `options`) 5/5 by nguyenv in 2740
* [python] Remove a debug statement by johnkerl in 2766
* [python] Continue to use `tiledb.Ctx`'s config until it is removed by nguyenv in 2768
* [python] `devtools/outgestor` stats and neaten by johnkerl in 2770
* [python] Update a confusing filename by johnkerl in 2776
* [python] Bump the stack level of the `tiledb_ctx` deprecation warning by ivirshup in 2788
* [python] Release GIL where necessary in pybind11 code by nguyenv in 2733
* [python] Hold onto GIL for open methods by nguyenv in 2800
* [python] Retain GIL for `exist` by nguyenv in 2801
* [python] Replace `py::none` with `py::tuple` for `column_names` default arg by nguyenv in 2806
* [python] Typo-fix some parameter names in some internal functions by johnkerl in 2809
* [c++/python] Add `tiledb_timestamp` argument for `reopen` by nguyenv in 2820
* [python] Remove `reshape` stub by johnkerl in 2826
* [python] More `reshape` neatens by johnkerl in 2828
* [python] pin `codecov/uploader==0.7.3` in `codecov-action` by ryan-williams in 2827
* [r] R versioning past `release-1.12` branch by johnkerl in 2716
* [r,c++] Support `DenseNDArray` write case by eddelbuettel in 2730
* Compare core to tiledb-py/tiledb-r major+minor, `main` branch by johnkerl in 2784
* [r] Add missing documentation for `set_data_type` by eddelbuettel in 2818
* [r] Support `SparseNDArray` writes case by eddelbuettel in 2755
* [r] Use `exists()` to check for (local or) remote arrays by eddelbuettel in 2803
* [r] Remove default mode-flipping in `$reopen()` by mojaveazure in 2817
* [r] Expose object-type getter by eddelbuettel in 2833
* [c++] Fix a nightly-build issue by johnkerl in 2718
* [c++] Add missing `SOMACollection` getters and setters by nguyenv in 2508
* [c++] More `SOMAGroup` refinements 1/5 by nguyenv in 2731
* [c++] Remap `TileDBError` to `TileDBSOMAError` by nguyenv in 2753
* [c++] General CMake clean-up by jp-dark in 2762
* [c++] Split nanoarrow into a separate object library by jp-dark in 2763
* [c++] Improve exception-handling for query futures by johnkerl in 2789
* [c++] Cast `ArrowTable` values in `SOMAArray::write` to match `ArraySchema` on-disk by nguyenv in 2786
* Bump setuptools from 69.5.1 to 70.0.0 in /doc by dependabot in 2796
* [c++] `exists` should take in `SOMAContext` by nguyenv in 2794
* [c++] Add `NDArray::soma_data_type` by nguyenv in 2810
* [c++] Do not call schema evolution for each column by nguyenv in 2805
* [c++] Check index in enumeration casting before using by nguyenv in 2816
* pre-commit update by bkmartinjr in 2821
New Contributors
* ivirshup made their first contribution in 2788
**Full Changelog**: https://github.com/single-cell-data/TileDB-SOMA/compare/1.12.0rc0...1.13.0