Development

Contributing Guide

Workflow

  • Work on feature branches from devel

  • Open PRs into devel (not main)

  • Ensure all checks pass before merge

Pre-commit

Install hooks once:

    pre-commit install

Run manually if needed:

    pre-commit run --all-files

Releases

  • Releases are made from devel

  • Tag the release:

    git tag vX.Y.Z
    git push origin vX.Y.Z
  • Then open a PR from develmain

Notes

  • main is release-only

  • CI enforces formatting, typing, and versioning


Task List

  • Documentation – complete coverage

  • Unit testing – increase coverage

  • Add notebook examples

  • IO

    • PTerodaCTILES ??

    • UM PP files??

    • MUSIC dumps

  • Geometry

    • Integrate staggered and non-staggered grid interfaces

    • Implement derivatives as ?methods? on grids

  • Physics

    • Integrate with MONC_utils

    • Integrate SGS Fluxes analysis from P. Burns

  • Analysis tools

    • Add Histograms/PDFs and violin calculators

    • Enhance tensor invariant calculators

    • Add quadrant analysis support

  • SGS

    • Add a nonlinear model extensions

    • Generalise dynamic coefficient calculations

    • Optimize simultaneous calculation at multiple scales or contraction dims

  • Scripts

    • Add a primer for CLI usage


Changelog

All notable changes to this project are documented in this file.

[WIP]

Break backward compatibility

  • CLI

    • in sim_comparison/ref_comparison: rename --plot_style_file -> --plot_styles, as it can take a json string or a path to a json file. (#48)

    • Read all fields when requested_fields is empty (#40)

Added

  • update CLI:

    • Dynamic version arg and tags in the netCDF output

      • better non-interactive backend support (#48)

      • New --skip_clouds and --only_diff arguments

  • I/O:

    • Central read dispatcher (#33)

    • Accept string inputs (#42)

    • Custom field-names lookup for UM files with default_field_names_dict (#48)

  • Debug utility for memory usage tracking

  • Updated packaging and test environment management

  • Enhanced GH Action workflows with stricter merge protections

  • Updated documentation

Fixes

  • turn geometry and diagnostics into sub-packages (#34)

  • dynamic versioning (instructions and docs)

  • enhancements to post_process

  • unify output filename convention

  • ref_comparison CLI: run with non-default plot_style

  • CLI plotting: add iterators for streaming figures to help memory optimization

[0.1.0] - 2025-08-22

Added

  • Auto-deployment of docs on GitHub pages (#28, #30)

  • packaging manager setuptools -> poetry (#27)

  • Apache 2.0 license (#24)

  • Dev tools: pre-commit hooks, ruff, pytest, tox, mypy (#19)

  • Extra diagnostics tools: (anistropy, spectra, profiles) with a CLI entrypoint (#9, #15)

  • New SGS models and upgraded CS calculation script (#4)

Fixes

  • temporary IO depependency change to netcdf4+h5netcdf (#16)

  • Refactor core modules, use Protocol, improve dynamic model logic (#5, #9, #15)

  • CLI entry points upgrades for CS generation and analysis (#2, #3, #4, #9)

  • Improved test coverage

  • Partial update of Readme and Docs

[0.0.1]

  • dynamic version

  • fixes to packaging and dependencies

  • upgrade IO support to xarray 2023.9

  • clean-up of main script CS_calculations.py (exposed as a cli)