Skip to content

v2.2.0

Choose a tag to compare

@knutdrand knutdrand released this 10 Sep 11:11
· 80 commits to master since this release
f45cd95

Highlights

  • Opt-in API token authentication for the chap-core API, letting deployments require a token without breaking existing unauthenticated setups.
  • Pluggable future-weather providers with a look-ahead flag, so forecasts can draw future climate data from different sources.
  • Consolidated backtest endpoints with persisted backtest parameters, making evaluation runs reproducible and inspectable after the fact.
  • Single consolidated Helm chart replacing the previous multi-chart layout, plus a self-contained compose.ghcr.yml deployment file.
  • Python 3.14 compatibility.

Features

  • Opt-in API token for the chap-core API (#512)
  • Pluggable future-weather providers with look-ahead flag (#568)
  • Endpoint suggesting covariate names for model-independent datasets (#575)
  • Persist backtest parameters and consolidate the backtest endpoints (#569)
  • Ensemble stacking (#534)
  • optimization_direction in MetricSpec and extra search-space argument (#552)
  • Restart policies and container healthcheck gaps closed (#532)
  • Chart: let the registration job be tracked (#516)
  • Compose: make compose.ghcr.yml a self-contained deployment file (#550)

Refactors and performance

  • Consolidate CHAP Helm charts into a single chart (#489)
  • Align prediction horizon fields with chapkit (CLIM-972) (#547)
  • Move train-test-generator out of backtest into Evaluation.create (#554)
  • Plotting: drop vegafusion and pyarrow, compile Vega with vl-convert (#469)
  • Vectorise sample CRPS via order-statistic formula (#467)
  • C4 architecture model with multi-renderer diagram export (CLIM-791) (#470)

Bug Fixes

  • Make chap-core compatible with Python 3.14 (#540)
  • Make service registry heartbeat atomic so pings cannot resurrect or overwrite registrations (CLIM-1073) (#576)
  • Bound chapkit client requests, treat cancelled jobs as failures, keep error detail (CLIM-1074) (#577)
  • Drain chapkit service output so local services do not block (CLIM-1072) (#574)
  • Persist data sources when creating a dataset via make-dataset (#578)
  • Fail backtests when a model skips org units or splits (#571)
  • Preserve forecast locations for models without covariates (CLIM-1048) (#562)
  • Preserve model template and configuration provenance (CLIM-886) (#527)
  • Accept provenance fields from chapkit 2.0 services in the service info parser (#564)
  • Populate dataset period metadata when loading evaluations (#443)
  • Restrict all-locations dataset when last_n is set for explain-lime (#549)
  • Report runner command output as text on failure (#536)
  • Wait for DHIS2 before registering the chap route (#529)
  • Stop service registration opening a second redis connection (#511)
  • Stop forwarding X-Service-Key in the v2 service proxy (#513)
  • Keep the service proxy out of the OpenAPI schema (#530)
  • Use chap_core as coverage target in make test-all (#493)

Documentation

  • DAC2026 series with configurable model tutorial (#442, #444, #446)
  • Document compose overlays and running your own model (CLIM-504) (#541)
  • Clean up last_n docs and fix surrogate_name options for LIME (#553)
  • Point local DHIS2 setup at docker-dhis2-core (#538)
  • Correct X-Service-Key scope in the API authentication page (#514)

Full Changelog: v2.1.0...v2.2.0