diff --git a/README.md b/README.md index b8fcf36..a7c5ae8 100644 --- a/README.md +++ b/README.md @@ -141,10 +141,11 @@ Some models require specific Python versions (e.g. FlowState 3.11-3.13, TabPFN & ## News -Recent additions and checkpoints (newest first). See the [changelog](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.15.md) for full release notes. +Recent additions and checkpoints (newest first). See the [changelog](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.16.md) for full release notes. | When | What | Checkpoint / detail | |------|------|---------------------| +| Oct 2026 | [**TimeH2O**](https://huggingface.co/h2oai/timeh2o-v1) | `h2oai/timeh2o-v1`, `h2oai/timeh2o-v1-tiny` — requires `h2ofm>=0.43.0` (Python 3.12+); native `X_df`; GIFT-Eval and fev-bench CI ([v0.1.16](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.16.md)) | | Oct 2026 | [**Timestral**](https://huggingface.co/collections/mistralai/timestral) | `mistralai/Timestral-{5M,28M,123M,209M}` — requires `timecopilot-timestral>=0.1.0`; native `X_df`; GIFT-Eval and fev-bench CI ([v0.1.15](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.15.md)) | | Oct 2026 | [**T0 gamma**](https://huggingface.co/theforecastingcompany/t0-gamma) | `theforecastingcompany/t0-gamma` — requires `tfc-t0[torch]>=0.6.0`; GIFT-Eval and fev-bench CI ([v0.1.14](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.14.md)) | | Oct 2026 | **GIFT-Eval replication for $37** | 16 models on the full benchmark, each official submission matched within 2% MASE/CRPS; new Experiments docs section ([v0.1.13](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.13.md)) | diff --git a/docs/changelogs/index.md b/docs/changelogs/index.md index 3c4ca32..bbc4ca6 100644 --- a/docs/changelogs/index.md +++ b/docs/changelogs/index.md @@ -2,6 +2,7 @@ Welcome to the FoundationForecast Changelog. Here you will find a list of changes, updates, and improvements for each release. Explore the details of each version below. +- [v0.1.16](v0.1.16.md) - [v0.1.15](v0.1.15.md) - [v0.1.14](v0.1.14.md) - [v0.1.13](v0.1.13.md) diff --git a/docs/changelogs/v0.1.16.md b/docs/changelogs/v0.1.16.md new file mode 100644 index 0000000..1555735 --- /dev/null +++ b/docs/changelogs/v0.1.16.md @@ -0,0 +1,22 @@ +### Features + +* **TimeH2O**: The [`TimeH2O`](https://docs.timecopilot.dev/foundationforecast/api/models/foundation/models/#foundationforecast.models.timeh2o.TimeH2O) wrapper supports H2O.ai's [`timeh2o-v1`](https://huggingface.co/h2oai/timeh2o-v1) and [`timeh2o-v1-tiny`](https://huggingface.co/h2oai/timeh2o-v1-tiny) checkpoints via `h2ofm>=0.43.0` (Python 3.12+). Native known-future covariates (`X_df`) on `timeh2o-v1`, including categorical columns encoded by `h2ofm`; arbitrary `level` / `quantiles` (levels outside the trained 0.1–0.9 grid use Gaussian-tail extrapolation); and `clip_nonnegative` / `snap_integer` options matching the published benchmark runs. The checkpoints are gated and released under a non-commercial license. See [#77](https://github.com/TimeCopilot/foundationforecast/pull/77). + +### Tests + +* **TimeH2O**: Mocked tests for quantile mapping, context truncation, covariate alignment, categorical covariates and option passthrough; a live smoke test on `timeh2o-v1-tiny`; and cross-model contract coverage for both checkpoints on Python 3.12+. See [#77](https://github.com/TimeCopilot/foundationforecast/pull/77). +* **Benchmark CI**: GIFT-Eval (`m4_weekly`) and fev-bench (`epf_pjm`, `entsoe_1H`) subsets add `timeh2o-v1`, with the settings of the official submissions and leaderboard references. See [#77](https://github.com/TimeCopilot/foundationforecast/pull/77). + +### Documentation + +* **TimeH2O family notebook**: [`timeh2o-family` example notebook](../examples/timeh2o-family.ipynb) compares both checkpoints and the benchmark settings, and shows known-future covariates on electricity prices. See [#77](https://github.com/TimeCopilot/foundationforecast/pull/77). +* **Model hub and README**: Document TimeH2O checkpoints, Python 3.12+ requirement, gated non-commercial license and native exog support; add H2O.ai/TimeH2O to the supported-models table. + +### Tooling + +* **Dependencies**: Add `h2ofm>=0.43.0` (Python 3.12+) and require `timecopilot-timesfm>=0.4.1`, which drops the `safetensors<0.6` cap that conflicted with `h2ofm`. +* **Benchmark harnesses**: Models can set `python` in `models.yaml`; GIFT-Eval and fev-bench Modal runs dispatch them to a Python 3.12 image while other models stay on 3.11. Experiment lockfiles refreshed. + +--- + +**Full Changelog**: https://github.com/TimeCopilot/foundationforecast/compare/v0.1.15...v0.1.16 diff --git a/experiments/fev-bench/uv.lock b/experiments/fev-bench/uv.lock index d728aab..5f85919 100644 --- a/experiments/fev-bench/uv.lock +++ b/experiments/fev-bench/uv.lock @@ -1144,7 +1144,7 @@ wheels = [ [[package]] name = "foundationforecast" -version = "0.1.15" +version = "0.1.16" source = { editable = "../../" } dependencies = [ { name = "gluonts", extra = ["torch"] }, diff --git a/experiments/gift-eval/uv.lock b/experiments/gift-eval/uv.lock index 1697e96..9983f66 100644 --- a/experiments/gift-eval/uv.lock +++ b/experiments/gift-eval/uv.lock @@ -1236,7 +1236,7 @@ wheels = [ [[package]] name = "foundationforecast" -version = "0.1.15" +version = "0.1.16" source = { editable = "../../" } dependencies = [ { name = "gluonts", extra = ["torch"] }, diff --git a/mkdocs.yml b/mkdocs.yml index ce2b7b7..1feccb4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -50,6 +50,7 @@ nav: - Contributing: contributing.md - Changelogs: - changelogs/index.md + - changelogs/v0.1.16.md - changelogs/v0.1.15.md - changelogs/v0.1.14.md - changelogs/v0.1.13.md diff --git a/pyproject.toml b/pyproject.toml index 47f7a17..27e80eb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,7 +75,7 @@ license = "Apache-2.0" name = "foundationforecast" readme = "README.md" requires-python = ">=3.10" -version = "0.1.15" +version = "0.1.16" [project.optional-dependencies] plot = [ diff --git a/uv.lock b/uv.lock index b2afe57..6462aff 100644 --- a/uv.lock +++ b/uv.lock @@ -1425,7 +1425,7 @@ wheels = [ [[package]] name = "foundationforecast" -version = "0.1.15" +version = "0.1.16" source = { editable = "." } dependencies = [ { name = "gluonts", extra = ["torch"] },