v0.19.0
Highlights
chapkit run — serve existing MLproject directories (#35)
Point chapkit at an MLflow-style MLproject directory and get a full chapkit service with zero code changes:
chapkit run # current directory
chapkit run . # same
chapkit run /path/to/mlproject- Canonical MLproject parameter mapping aligned with chap-core:
train_data,historic_data,future_data,out_file,model,model_config,polygons. user_optionsfrom the MLproject become typed fields on a dynamically-generatedBaseConfigsubclass (viapydantic.create_model);prediction_periods: int = 3is injected when absent.--param NAME=FILENAMErepeatable flag overrides the canonical map.- Env-field warnings for
docker_env,renv_env,python_env,uv_env,conda_env.
Full walkthrough: MLproject Runner guide.
Published container images (#36, #37)
Three base images for chapkit run now published to ghcr.io, maintained in the sibling dhis2-chap/chapkit-images repo:
| Image | Arches | Purpose |
|---|---|---|
ghcr.io/dhis2-chap/chapkit-py |
linux/amd64, linux/arm64 | Python MLproject models (lean) |
ghcr.io/dhis2-chap/chapkit-r |
linux/amd64, linux/arm64 | R MLproject models without INLA (R 4.5 + renv + pak) |
ghcr.io/dhis2-chap/chapkit-r-inla |
linux/amd64 only | R + INLA + chap-core R stack (fmesher, sf, spdep, ...) |
Usage:
docker run --rm -p 8000:8000 -v "$(pwd):/work" ghcr.io/dhis2-chap/chapkit-r:latestAll three run as root today; non-root hardening is a deferred follow-up.
Docs (#38)
New MLproject Runner guide. README gets a chapkit run section and a pointer to chapkit-images.
Other changes
- Dep refresh: typer, mypy, pyright, pytest(+plugins), ruff, coverage, pandas/numpy, scikit-learn, mkdocs + plugins. One follow-on annotation fix —
-> AsyncGenerator[...]on@asynccontextmanager— for pyright 1.1.409 compat.
Full changelog
- feat: add chapkit run for MLproject auto-discovery (#35)
- fix(docker): own the R toolchain; split into chapkit-r + chapkit-r-inla (#36)
- chore: move docker images out of chapkit core (#37)
- docs: surface chapkit run + chapkit-images split (#38)
- chore: bump version to v0.19.0
Full diff: v0.18.0...v0.19.0