New features added
* [python] `update_uns_by_uri`, `_update_uns` by ryan-williams in 2876
* [python] Remove `pyarrow` pin on MacOS by johnkerl in 3004
* [python] Expose tiledbsoma stats as JSON string or Python-parsed by johnkerl in 2958
* [r] Timestamp write and read of data frame and array objects by eddelbuettel in 2926
Bug fixes
* [python] Utilize Arrow schema `pa.field` nullabilities in `DataFrame.create` by johnkerl in 2868
* [python] Offer better guidance on attribute names with `.` by johnkerl in 2864
* [python] X-write performance improvement for the non-append case by johnkerl in 2846
* [c++] Fix `ManagedQuery` usage in `SOMAArray` write path by nguyenv in 2989
* [c++] Only evolve schema when enumerations are extended by nguyenv in 2851
* [c++] Corner-case bug in extend-enumeration logic by johnkerl in 2897
* [c++] Remap indexes even if no new enums were added by nguyenv in 2993
Breaking changes
* [python] Post-deprecation removal of `consolidate_and_vacuum` from `TileDBCreateOptions` by johnkerl in 3000
* [python] Implement scheduled removal of `TileDBCreateOptions` being passed to `write` methods by johnkerl in 2842
Upcoming deprecation notices
* [python/r] Update ETA for new-shape feature by johnkerl in 2998
* Add tracking links for dense/new-shape support by johnkerl in 2960
Minor changes
* [python] Ingest/outgest round-trip improvements by ryan-williams in 2804
* [python] Add `CollectionBase.members` by nguyenv in 2795
* [python] Use original error message when re-raising with `DoesNotExistError` by nguyenv in 2814
* [python] Debug CI `mypy` failures related to ` type: ignore[misc]` by ryan-williams in 2838
* [python] Misc. ingest/outgest code-neaten improvements by ryan-williams in 2824
* [python] pin `pandas-stubs>=2` during pre-commit `mypy` hook by ryan-williams in 2854
* [python] `actions{cache,checkout,setup-python}` upgrades by ryan-williams in 2856
* [python] Move `_update_column` into pybind11 by nguyenv in 2862
* [python] `test_registration_mappings.py::test_pandas_indexing` reformat by ryan-williams in 2853
* [python] Fix a comment by johnkerl in 2875
* [python] Use `somacore` 1.0.14 by johnkerl in 2878
* [python] More AnnData equality assertions in tests by ryan-williams in 2872
* [python] Update comments, remove unused test params by ryan-williams in 2873
* [python] Remove some dead code by johnkerl in 2887
* [python] improve `uns` DataFrame I/O by ryan-williams in 2874
* [python] Docstring typo, test-assertion msgs, `maybe_raises` improvement, `verify_logs` helper by ryan-williams in 2892
* [python] Unit-test helper `make_df` -> `make_pd_df` by johnkerl in 2898
* [python] Trivial rename within a unit-test file by johnkerl in 2908
* [python] Fix ref to method in docstring example by spencerseale in 2942
* [python/r] Expose shape-related accessors to Python/R bindings by johnkerl in 2953
* [c++/python] Map core-to-soma domains correctly by johnkerl in 2957
* [python] Fix nightly-build failure / `pybind11` exception-mapping by johnkerl in 2963
* [python] Minor name-neaten in internals for `domain`/`maxdomain` by johnkerl in 2969
* [python] Trivial dead-strip by johnkerl in 2968
* [python/r] Array-creation mods for new shape by johnkerl in 2962
* [c++/python] More exception-mapping fixes by johnkerl in 2980
* [python] Complete TileDB-Py 0.32.0 pin by johnkerl in 2984
* [python] Use `somacore` 1.0.15 by johnkerl in 2986
* [python/r] Implement `resize` and `tiledbsoma_upgrade_shape` by johnkerl in 2950
* [python] Move temporary feature flag into a module by johnkerl in 3005
* shellcheck `scripts/bld` by ryan-williams in 2927
* Use core 2.26.0 by johnkerl in 2976
* [r] R `DESCRIPTION` bump in prep for 1.13 (`main` branch) by johnkerl in 2836
* [r] Metadata read/write support via libtiledbsoma by eddelbuettel in 2819
* [ci] Update autocut rule for current ownership by johnkerl in 2893
* [r] Small robustification for version comparison by eddelbuettel in 2914
* [r] Expose timestamp ranges for libtiledbsoma by mojaveazure in 2929
* [r] Use cached timestamp in `$create()` and `$write()` by mojaveazure in 2930
* [r] Signal script failure to calling script, polish messages by eddelbuettel in 2932
* [r] Fix bug in blockwise iterator by mojaveazure in 2965
* [r/ci] Fix bug when installing tiledb-r by mojaveazure in 2971
* [r] Fix `DenseNDArray` write after create by johnkerl in 2970
* [r] Updated groups read/write support via libtiledbsoma by eddelbuettel in 2973
* [r] Correct a test expression by eddelbuettel in 2974
* [r] Use cached SOMA context rather than re-creating by mojaveazure in 2988
* [r] Lower some logging from 'info' to 'debug' by eddelbuettel in 2991
* [r] Documentation refresher by eddelbuettel in 2996
* [r] Remove core version check by johnkerl in 3006
* [r] Add `axis` checks when initializing a sparse blockwise read by mojaveazure in 3007
* [r] 1.14 version for `release-1.14` branch by johnkerl in 3010
* [c++] Support option to set log level from environment by johnkerl in 2972
* [c++] Add `dataset_type` into `SOMAExperiment` metadata by nguyenv in 2884
* [c++] Fix typos in unit-test case by johnkerl in 2888
* [c++] Remove a temporary `gdb` hook from 2888 by johnkerl in 2891
* [c++] Apply `ArraySchemaEvolution` to specified timestamp by johnkerl in 2895
* [c++] Final update for Python/R metadata typing by johnkerl in 2900
* [c++] Trivial parameterizes in `test/common.cc` by johnkerl in 2910
* [c++] Methodize timestamped-schema-evolution factory by johnkerl in 2909
* [c++] Trivial name-neaten by johnkerl in 2913
* [c++] Remove some dead unit-test code by johnkerl in 2918
* [c++,r] Update vendored `nanoarrow` to release 0.5.0 by eddelbuettel in 2923
* [c++] Revert 2895 by ryan-williams in 2921
* [c++] Remove some dead code in int64-only shape accessor by johnkerl in 2915
* [c++] Arrow utils with current-domain option by johnkerl in 2911
* [c++] Minor function-extract in a unit-test helper by johnkerl in 2919
* [c++] Pre-neatens before making unit-test helpers for variant-indexed dataframes by johnkerl in 2936
* [c++] More `use_current_domain` unit-test parameterization by johnkerl in 2938
* [c++] Parameterize schema-creation unit-test helpers by johnkerl in 2939
* [c++] Unit-test `resize` for `SparseNDArray` and `DenseNDArray` by johnkerl in 2947
* [c++] Make a Catch2 test fixture for dataframes by johnkerl in 2945
* [c++] Unit-test variant-indexed dataframes by johnkerl in 2944
* [c++] Performant `DataFrame.shape` by johnkerl in 2916
* [c++] Resize for variant-indexed `DataFrame` by johnkerl in 2917
* [c++] Implement `upgrade_shape` for `SparseNDArray` and `DenseNDArray` by johnkerl in 2948
* [c++] Clarify dataframe-shaping test/access points by johnkerl in 2951
* [c++] Also check for leading slash when checking for 'relative' URLs by eddelbuettel in 2956
* [c++] Deconfuse a test name by johnkerl in 2977
* [c++] Remove `ArrayBuffers` from `SOMAArray` by nguyenv in 2979
* [c++] Create specialized templates for `SOMAArray` casting functions by nguyenv in 2982
* [c++] Refine concurrency configuration (`soma.compute_concurrency_level`) by bkmartinjr in 2978
* [c++] Support writes when attaching `Query` to `ColumnBuffer` by nguyenv in 2983
* [c++] Move `cast_bit_to_uint8` into `util` by nguyenv in 2992
* [r,c++] Use SOMA Context object throughout by eddelbuettel in 2997
* [c++] Centralize some `nanoarrow` helpers by johnkerl in 2994
* [c++] Use core 2.26.1 by johnkerl in 3002
* [c++/r] Fix `pkgdown` build errors by johnkerl in 3003
New Contributors
* spencerseale made their first contribution in 2942
**Full Changelog**: https://github.com/single-cell-data/TileDB-SOMA/compare/1.13.1...1.14.0