Skip to content

DataBUS v2.0.0

Latest

Choose a tag to compare

@sedv8808 sedv8808 released this 05 Mar 21:14
· 11 commits to main since this release

[2.0.0] - 2026-03-05

Added

  • Universal YAML template (data/template_example.yml).
  • Example CSV data file (data/data_example.csv) demonstrating the full column set.
  • Comprehensive test suite with coverage reporting via Codecov.
  • CI pipeline with Ruff linting, pytest + coverage, and Codecov upload (.github/workflows/ci.yml).
  • MkDocs documentation site with auto-generated API reference via mkdocstrings.
  • Tutorials rewritten to reflect the actual two-pass workflow (databus_example.py).
  • OpenSSF Best Practices badge tracking.

Changed

  • Major refactor of the validation/upload architecture (BU-334, BU-349): each validator now also handles insertion when a populated databus dict is supplied, eliminating the separate neotomaUploader module and reducing code duplication.
  • Refactored pull_params into smaller, testable helper functions in utils.py, removing the dependency on pandas.
  • Contact handling consolidated: all contact types (PI, collector, processor, analyst) now go through valid_contact, with chronology modeler assignment handled within valid_chronologies. This significantly reduces repeated code.
  • Data upload now tracks inserted IDs so that data uncertainties can be linked correctly.
  • Chronology handling improved to properly manage calendar years, default chronologies, and sample age linkage.
  • Geopolitical unit insertion updated to handle entities like Scotland under the UK.
  • Improved logging with logging_dict and per-file .valid.log output.
  • Adopted Ruff as the sole linter and formatter, replacing previous tooling.
  • Switched to uv for dependency management and script execution.

Fixed

  • Chron controls now handle calendar years properly.
  • U-Th series insertion works correctly when the number of geochron indices differs from sample indices.
  • Fixed dataset–publication and dataset–database linking during upload.
  • Fixed collector insertion for NODE community datasets.
  • Fixed variable validation to handle null values without comparing null against null.
  • Numerous typos across chroncontrols.py, sample.py, Chronology.py, and others.