Skip to content

SUEWS v2026.4.3: Rust FFI Backend, RSL Dynamics & T2 Attribution

Choose a tag to compare

@github-actions github-actions released this 03 Apr 21:44
· 252 commits to master since this release

Installation

pip install --upgrade supy

What's New

Version 2026.4.3 (released on 3 April 2026)

This release delivers a major backend migration to Rust FFI, RSL physics refinements, a new temperature attribution module, DTS enhancements, seasonal albedo adjustments, comprehensive validation improvements, and extensive bug fixes.

Highlights

Rust FFI Bridge

  • Replaced f90wrap with a Rust FFI bridge as the sole simulation backend (#1209)
  • Unified CLI interface with automatic PATH installation (#1215)
  • Validated Rust output layout against Fortran metadata (#1226)

RSL Physics

  • Dynamic computation of c2m/c2h from Harman & Finnigan (2007, 2008) RSL theory (#1116)
  • Refined parameterisation with explicit R = beta * hd / elm (#1232)
  • Fixed interpolation bounds and division-by-zero pitfalls in RSL profiles (#1228, #1229)

T2 Attribution Module

  • Diagnose near-surface temperature, humidity, and wind speed changes by physical process contributions, with diurnal cycle and heatmap visualisation (#918)

Seasonal Albedo

  • Seasonal adjustment of surface albedo (alb_id) for vegetated surfaces (#1211)
  • Auto-initialise vegetation albedo from phenology state (#1133)

DTS Enhancements

  • chunk_day parameter for long simulations (#1172)
  • run_dts_multi for multi-grid simulation support (#1173)
  • Hardened parallel multi-grid execution (#1176)
  • Fixed Pydantic model serialisation across multiprocessing spawn boundaries (#1197)

Validation

  • Draft rules registry for structured validator rule management (#1246)
  • Conditional validation via Pydantic v2 model_fields_set (#1247)
  • Upper limit on nlayer to prevent run crashes (#1206)
  • SUEWSOutput index property (#1178)

Bug Fixes

  • Guarded SPARTACUS LW solver against NaN from matrix singularity (#1212)
  • Fixed SUEWS output packing overflow with fail-fast behaviour (#1198)
  • Fixed Pydantic dict format handling in YAML numeric parser (#1236)
  • Pinned pydantic>=2.12 to prevent OSGeo4W version conflict (#1213)
  • Fixed STEBBS WWR extreme cases (WWR = 0 or 1) (#1261)
  • Fixed biogenic CO2 to use local climate instead of global average (#1117)
  • Fixed missing STEBBS parameters in sample_config.yml (#1111)
  • Auto-repair stale refs in fetch_origin conductor (#1239)

CI and Security

  • Hardened dependency supply chain after LiteLLM incident with startup hook auditing (#1264)
  • Rust change detection and Cargo build caching across all platforms (#1217, #1219)
  • Gated tag-triggered deployments on master ancestry (#1162)
  • Pre-built documentation served from rtd branch (#1167)
  • Deprecated env.yml and conda/mamba build pathway (#1163)

Other Improvements

  • Discourse-to-GitHub issue bridge with webhook sync (#1138)
  • Status tags for changelog entries (governance) (#1181)
  • Revised README as science-first landing page (#1265)
  • Anthropogenic emission defaults and parameter guidance (#1231)
  • User workflow guide for getting started (#1014)
  • Executable documentation examples using sphinx-gallery (#1057)

Breaking Changes

  • f90wrap is no longer supported; the Rust FFI bridge is the sole backend (#1209)
  • Deprecated env.yml and conda/mamba build pathway (#1163)

Full Changelog

For complete details, see the CHANGELOG.

Citation

This release is archived on Zenodo with a DOI for academic citation. The DOI appears automatically once Zenodo processing completes (usually within minutes).

Documentation