* Fix a FutureWarning on accessing [xarray.Dataset.dims](https://docs.xarray.dev/en/stable/generated/xarray.Dataset.dims.html#xarray.Dataset.dims) with xarray >= 2023.12.0 ([pull request 124](https://github.com/csiro-coasts/emsarray/pull/124), [pull request pydata/xarray#8500](https://github.com/pydata/xarray/pull/8500)).
* Fix an error when creating a transect plot that does not intersect the model geometry. Previously this would raise a cryptic error, now it returns an empty transect dataset ([issue 119](https://github.com/csiro-coasts/emsarray/issues/119), [pull request #120](https://github.com/csiro-coasts/emsarray/pull/120)).
* Drop dependency on importlib_metadata. This was only required to support Python 3.8, which was dropped in a previous release ([issue 122](https://github.com/csiro-coasts/emsarray/issues/122), [pull request #125](https://github.com/csiro-coasts/emsarray/pull/125)).
* Fix an error with ShocSimple.get_all_depth_names() when the dataset had no depth coordinates ([issue 123](https://github.com/csiro-coasts/emsarray/issues/123), [pull request #126](https://github.com/csiro-coasts/emsarray/pull/126)).
* Use [PEP 585 generic type annotations](https://peps.python.org/pep-0585/) and stop using [PEP 563 postponed annotation evaluation](https://peps.python.org/pep-0563/) ([issue #109](https://github.com/csiro-coasts/emsarray/issues/109), [pull request #127](https://github.com/csiro-coasts/emsarray/pull/127)).
* Use [pytest-mpl](https://pypi.org/project/pytest-mpl/) for image comparison tests for testing plotting methods ([pull request #128](https://github.com/csiro-coasts/emsarray/pull/128)).
* Update all URLs to the NCI THREDDS server ([update notice](https://opus.nci.org.au/display/NDP/THREDDS+Upgrade), [issue #135](https://github.com/csiro-coasts/emsarray/issues/135), [pull request #136](https://github.com/csiro-coasts/emsarray/pull/136), [pull request csiro-coast/emsarray-data#2](https://github.com/csiro-coast/emsarray-data/pull/2)).
* Correct all references to K’gari, formerly Fraser Island ([issue 133](https://github.com/csiro-coasts/emsarray/issues/133), [pull request csiro-coast/emsarray-data#2](https://github.com/csiro-coast/emsarray-data/pull/2), [pull request #134](https://github.com/csiro-coasts/emsarray/pull/134)).
* Bump minimum versions of dependencies, update pinned dependencies for CI. Officially support numpy version 2.0.0 ([pull request 137](https://github.com/csiro-coasts/emsarray/pull/137)).
* Lint Python code in docs/ and scripts/ ([pull request 141](https://github.com/csiro-coasts/emsarray/pull/141)).
* Add [emsarray.utils.name_to_data_array()](https://emsarray.readthedocs.io/en/stable/api/utils/#emsarray.utils.name_to_data_array) and [data_array_to_name()](https://emsarray.readthedocs.io/en/stable/api/utils/#emsarray.utils.data_array_to_name) functions. Allow more functions to interchangeably take either a data array or the name of a data array ([pull request 142](https://github.com/csiro-coasts/emsarray/pull/142)).
* Add [Convention.depth_coordinates](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.depth_coordinates) and [Convention.get_depth_coordinate_for_data_array()](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.get_depth_coordinate_for_data_array). Deprecate functions [Convention.get_depth_name()](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.get_depth_name), [Convention.get_all_depth_names()](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.get_all_depth_names), and Convention.get_time_name(). Remove deprecated functions Convention.get_depths() and Convention.get_times() ([pull request 143](https://github.com/csiro-coasts/emsarray/pull/143)).
* Swap to using pyproject.toml for all project metadata ([pull request 145](https://github.com/csiro-coasts/emsarray/pull/145)).
* Add new methods [Convention.selector_for_indexes()](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.selector_for_indexes), [Convention.select_indexes()](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.select_indexes), and [Convention.select_points()](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.select_points). These allow for more efficient extraction of multiple points at the same time. The return type of [Convention.selector_for_index()](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.selector_for_index) has been changed from a dict to an [xarray.Dataset](https://docs.xarray.dev/en/stable/generated/xarray.Dataset.html#xarray.Dataset), but this new value is also designed to be passed directly to [Dataset.isel()](https://docs.xarray.dev/en/stable/generated/xarray.Dataset.isel.html#xarray.Dataset.isel). [Convention.select_index()](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.select_index) and [Convention.select_indexes()](https://emsarray.readthedocs.io/en/stable/api/conventions/interface/#emsarray.conventions.Convention.select_indexes) have a new drop_geometry flag which defaults to True. Previously these methods would act as if drop_geometry was False, but this led to convention-dependent results as to which geometry variables were returned. The fragmented geometry variables from different conventions often did not contain enough data to be useful. By dropping geometry the results are more consistent across all conventions and do not contain potentially fragmented geometry information. ([issue 106](https://github.com/csiro-coasts/emsarray/issues/106), [pull request #146](https://github.com/csiro-coasts/emsarray/pull/146)).
* Remove support for the deprecated emsarray.formats module, the emsarray.formats entry point, and filtered warnings for old dependencies no longer supported ([pull request 146](https://github.com/csiro-coasts/emsarray/pull/146)).