Structure of hub repositories#
A hub repository should be structured according to the following guidelines:
-
1The directory is required, but the name is flexible. You can
use a custom directory path by setting the
Code and scripts must not be present in the
model-output
1The directory is required, but the name is flexible. You can use a custom directory path by setting the"model_output_dir"
property in theadmin.json
file. More details can be found in theadmin.json
schema definition. directory of a hub repository.If code is included in the hub repository, it should live in a centrally located directory, which we recommend naming
src
.If code has the potential to disrupt or break other continuous integration operations in the hub (e.g., validation of incoming submissions), it should be moved to another repository.
"model_output_dir"
property in the
admin.json
file. More details can be found in the admin.json
schema
definition.The directory and file structure of a modeling hub should contain only the following directories, subdirectories, and files:
Required Components#
Component |
Location |
Description |
Hub provides |
Modeler provides |
---|---|---|---|---|
Documentation file |
e.g., |
File containing info about the hub structure and additional details about each of the directories |
X |
Component |
Location |
Description |
Hub provides |
Modeler provides |
---|---|---|---|---|
Configuration directory |
|
Folder storing configuration files |
X |
|
Admin configuration file |
|
Structured text file containing overall configuration settings for the hub |
X |
|
Modeling tasks configuration file |
|
Structured text file that defines modeling tasks and therefore implicity defines the assumed structure for any model submitted |
X |
|
Model metadata configuration file |
|
Structured text file that defines the expected format of model metadata files submitted by modeling teams |
X |
Component |
Location |
Description |
Hub provides |
Modeler provides |
---|---|---|---|---|
Model output directory |
|
Folder to collect modeling team model submissions |
X |
|
Model output subdirectory |
|
Model-specific subdirectory for submissions from one modeling team |
X |
|
Model output file |
|
Round-specific model submission file |
X |
Component |
Location |
Description |
Hub provides |
Modeler provides |
---|---|---|---|---|
Model metadata directory |
|
Folder to collect modeling team model metadata submissions |
X |
|
Model metadata submission file |
|
Model-specific metadata submission file |
X |
Optional Components#
The following components are not required for a hub, but may be useful:
Component |
Location |
Description |
Hub provides |
Modeler provides |
---|---|---|---|---|
Model abstracts directory (optional) |
|
Folder to collect optional round-specific model metadata |
X |
|
Model abstract subdirectory |
|
Model-specific subdirectory for round-specific model metadata |
X |
|
Model abstract submission file |
|
Round-specific model metadata submission |
X |
Component |
Location |
Description |
Hub provides |
Modeler provides |
---|---|---|---|---|
Target data directory |
|
Folder storing actual observed (i.e., target) values of an outcome (or links to external open-access sources) and information on how model targets can be calculated from target data |
X |
|
Auxiliary data directory |
|
Folder storing any additional data related to modeling efforts |
X |
|
Source code directory |
|
Folder storing code that is present in the hub repository |
X |
Optionally, a hub may store any files necessary to define continuous integration workflows, for example for the purpose of validating submissions or updating target data.
Although most hubs to date have been housed in GitHub repositories, the proposed structure is more general and can be adapted for use on any shared filesystem.