Skip to content

Version 1.1.0

Choose a tag to compare

@ivargr ivargr released this 03 Nov 11:50
· 812 commits to master since this release

The following are the main changes since release 1.0.17.

Plotting & Visualization

We now support “backtest plots”, which are plots for evaluations (backtests). These are flexible, configurable plots. Currently, as a prototype, we provide a few simple plots, but developers can quite easily implement other plots. In the current version, this is a prototype, and a known issue is that this plot may fail to load in the modeling app if there is too much data (due to timeout in the routes API). This will be fixed in a future version.

Metric System

New system for implementing custom metrics for evaluations.
A few example metrics are implemented, and developers can easily add new ones through a modular system.
Documentation and a tutorial for developing metrics:
🔗 https://github.com/dhis2-chap/Assessment_example_chap_compatible

Database Migration System (Alembic)

  • Complete Alembic integration for database schema migrations with documentation
  • Automatic migrations on chap serve startup
  • Enables upgrading chap-core without losing previous data

Model Integration through chapkit (Experimental)

Infrastructure & Performance

Python

  • Migrated from Python 3.10 → 3.13

Docker Improvements

  • Gunicorn-based production server replacing direct Uvicorn
  • Pre-built worker images cached in GHCR (including INLA worker image)
  • Fixed health checks and container orchestration
  • Better logging from Gunicorn to stdout for Docker logs
  • Containers now run as non-root chap user

REST API Enhancements

  • Refactored backtest endpoints (create-backtest-with-data)
  • New endpoints: plots, metrics, dataset info, predictions
  • Deprecated endpoints removed (old evaluate, predict, list-features)
  • Improved error handling and logging

Code Quality & Cleanup

Removed Legacy Code

  • Google Earth Engine integration removed
  • COVID masking code removed
  • Simulation code cleanup
  • LocationLookup removed
  • Old evaluation functions removed

Refactoring

  • rest_api_srcrest_api
  • Dataset models refactored with optional period types
  • Cleaned up model template configuration

Bug Fixes & Stability

  • GeoJSON handling improvements (skip large geometries to prevent timeouts)
  • Docker Compose integration test fixes
  • Fixed column names in report output
  • Fixed metric names in pandas DataFrames

Testing & CI

  • Cleanup and speed improvements to test suite
  • Integration tests for Docker Compose flows improved
  • Weekly data support in backtest tests
  • New test fixtures for datasets and backtests
  • GitHub Actions caching improvements

Minor Improvements

  • New models added to default installation (including INLA baseline model)
  • Better dataset seeding on startup
  • Optional intervention data in simulations
  • Improved documentation for newcomers

Breaking Changes

  • Python 3.10 → 3.13 required
  • Google Earth Engine dependencies removed
  • REST API endpoints refactored (deprecated endpoints removed)