Repository navigation
Overview
This release introduces BI500 parsing support, Match Geometry regridding, improvements to existing processing functions, and a range of bug fixes. It also modernizes Python packaging and dependency support through Scientific Python SPEC 0, adds Python 3.14 support, and strengthens the CI and test infrastructure.
Thanks to @LOCEANlloydizard, @praneethratna, @leewujung, @beatfactor, @ctuguinay, @gavinmacaulay, @dash-uvic, @binggao1230, and @eliascapriles-NOAA for their contributions!
New functionalities
- Add parser support for BI500 files by @praneethratna in #1252
- Add regridding based on Echoview Match Geometry by @eliascapriles-NOAA in #1597
- Support parsing and storing selected channels by @praneethratna in #1756
- Add preliminary AZFP ULS6 support and ULS5 improvements by @dash-uvic in #1581
Enhancements and performance
- Improve performance of noise reduction and seafloor detection by @LOCEANlloydizard in #1780
- Refactor logging, introduce package-level verbosity control, and clean up the logging infrastructure by @praneethratna in #1740 and #1772
- Group EK60 and EK80 sonar model families by @praneethratna in #1738
- Prepare the deprecation of
combine_echodataby @ctuguinay in #1725
Bug and warning fixes
- Fix SNR threshold typing and xarray scalar extraction by @beatfactor in #1622
- Fix Blackwell depth-grid selection by @LOCEANlloydizard in #1661
- Fix file-permission checks for target stores by @binggao1230 in #1676
- Handle
NaTvalues in time encoding by @LOCEANlloydizard in #1694 - Handle duplicate timestamps in
add_locationby @beatfactor in #1627 - Fix channel-frequency mapping in
compute_MVBSby @LOCEANlloydizard in #1698 - Pad vendor parameters with unequal lengths across channels by @leewujung in #1702
- Check the first datagram type when identifying EK60/EK80 models by @leewujung in #1724
- Fix AZFP ULS5 single-frequency file handling by @dash-uvic in #1714
- Prevent crashes on zero-length dimensions during EchoData conversion by @beatfactor in #1624
- Fix ECS calibration channel ordering when broadband calibration data is absent by @ctuguinay in #1768
- Fix BI500 channel identifiers by @LOCEANlloydizard in #1793
- Fix xarray
coarsenreductions by @LOCEANlloydizard in #1796 - Update Zarr v3 compressor handling by @leewujung in #1657
- Update string encoding to object type by @leewujung in #1658
- Expose the
qcmodule at the package level by @leewujung in #1771
Dependencies and packaging
- Migrate package configuration to
pyproject.tomlby @LOCEANlloydizard in #1667 - Adopt Scientific Python SPEC 0 to maintain supported minimum Python and dependency versions by @LOCEANlloydizard in #1739
- Add Python 3.14 support by @LOCEANlloydizard in #1708
- Improve
uvdevelopment workflow support by @gavinmacaulay in #1705 - Default to Python 3.12 for
uvdevelopment environments by @gavinmacaulay in #1735 - Update build workflow installation of
pyproject.tomlextras by @LOCEANlloydizard in #1670
CI, tests, and test data
- Fix Pooch download/cache handling in development setup by @LOCEANlloydizard in #1656
- Split Windows CI into unit and integration jobs by @LOCEANlloydizard in #1680
- Clean up CI workflows by @LOCEANlloydizard in #1723
- Validate data inventory on pushes to
mainby @LOCEANlloydizard in #1748 - Add initial data-inventory tests by @LOCEANlloydizard in #1684
- Replace MinIO with SeaweedFS by @leewujung in #1798
- Fix MinIO download URL for Windows CI by @LOCEANlloydizard in #1784
- Adapt memory monitoring to new Windows CI jobs by @LOCEANlloydizard in #1737
- Adjust push triggers by @LOCEANlloydizard in #1749
- Restore the PR-test workflow name by @LOCEANlloydizard in #1757
- Ignore Windows service artifacts and clarify test setup by @LOCEANlloydizard in #1750
- Keep local test artifacts outside the repository by @LOCEANlloydizard in #1758
- Remove duplicate EK80 multiplex fixture by @LOCEANlloydizard in #1728
- Add Echoview Match Geometry reference data by @LOCEANlloydizard in #1679
- Add TS-spectrum example data by @LOCEANlloydizard in #1683
- Update TS-spectrum reference-data checksum by @LOCEANlloydizard in #1689
- Improve assertions for interpolated ECS calibration parameters by @LOCEANlloydizard in #1687
- Add heading test data and fixtures by @LOCEANlloydizard in #1704
- Update shared test fixtures by @LOCEANlloydizard in #1707
- Resolve pytest warnings by @gavinmacaulay in #1731
- Add AZFP single-frequency test data by @LOCEANlloydizard in #1733
- Register BI500 test data by @LOCEANlloydizard in #1744
- Streamline PyPI publishing, improve package validation, and modernize conda-forge release checks by @LOCEANlloydizard and @leewujung in #1802
Documentation
- Update links following the organization rename by @LOCEANlloydizard in #1668
- Update contributor documentation for
pyproject.tomlby @LOCEANlloydizard in #1672 - Fix docstring sections missing from rendered documentation by @gavinmacaulay in #1709
- Restore bibliography in generated documentation by @gavinmacaulay in #1710
- Fix contributing-page reference by @praneethratna in #1711
- Document
coerce_increasing_timeusage by @leewujung in #1726 - Resolve Sphinx deprecation warnings by @gavinmacaulay in #1736
- Remove outdated GSoC 2024 instructions by @LOCEANlloydizard in #1752
- Rework README badges by @LOCEANlloydizard in #1754
- Resolve documentation build warnings by @gavinmacaulay in #1759
- Fix remaining documentation build warnings and errors by @gavinmacaulay in #1763
- Refine API documentation by @gavinmacaulay in #1764
- Test unpinning Jupyter Book by @LOCEANlloydizard in #1673
- Ignore generated
jupyter_executefiles by @gavinmacaulay in #1755
Maintenance and automated updates
- Apply automated Scientific Python SPEC 0 minimum-version updates (#1742, #1788, #1795).
- Update GitHub Actions, publishing dependencies, and pre-commit hooks (see full changelog).
New contributors
- @binggao1230 made their first contribution in #1676.
- @eliascapriles-NOAA made their first contribution in #1597.
Full Changelog: v0.11.1...v0.12.0