This repo contains the necessary infrastructure to handle automatic submissions to a Forecast Hub (in this specific case, the European Covid-19 Forecast Hub).
Each model is stored as a git submodule (after a security scan) under
the models/
folder and code is run automatically on a schedule via
GitHub Actions. The generated forecasts are then submitted to the hub
repository as a pull request.
As of 2024-12-03, 573 automated submissions have successfully been merged.
To submit your model for auto-submission, you need to open an issue providing:
- The URL to a public git repository (e.g., hosted on GitHub)
containing:
- a file
main.sh
,main.R
ormain.py
at its root. Thismain
file needs to create the forecasts with the expected folder structure in a folder nameddata-processed
. - a dependency management file. The exact name and syntax depend on
the programming language you are using. Some examples are
requirements.txt
for python (with pip) orrenv.lock
for R (with renv). All dependencies must have an exact version pinned to minimise risk of breakage with future dependency updates.
- a file
- the week day and time at which the workflow should run (as UTC).
- the name of the GitHub user who should be tagged on pull request to review automated submissions.
Please note that although encouraged, it is not strictly mandatory to submit the code generating your forecasts. You can submit a script fetching already existing forecasts from another location such as an API, another GitHub repository, a data repository, a dropbox folder, etc.
Update submodules with
git submodule foreach git pull
Add a new submodule with
git submodule add <repo_url> models/repo_name
Remove a submodule with
``` git submodule deinit models/repo_name git rm models/repo_name