This is a meta issue for tracking work around "composable configs"
Context
We don't have a centralized config schema for phylogenetic workflows because each pathogen runs different Augur commands and custom scripts that use different params. The config gets even more complicated when the workflow creates multiple builds (e.g. flu subtype x segment x time resolution). Since the workflows are authored by different people, we end up with varying config schemas that can be confusing to outside users. With the config file as the main UI for external users of workflows, we should make them easier to work with!
Documenting available config params and their default values
I don't think it's realistic to write and maintain detailed workflow config docs like we have for ncov, so I've been trying to find a way to have centralized documentation for config files.
Making it easy to overriding configs
With nextstrain build and the forthcoming workflows as programs, users can provide custom config files to override the default config params. This is relatively straightforward for single build workflows (as long as the config params are well documented). This can be tedious for multi-build workflows as discussed on Slack. The path forward here is less clear, but here are some related work around this:
Validating configs during the workflow
It'd be useful to get immediate feedback during the workflow run by validating the user's custom config file. This should flag missing required config params and config params in the config file that are not being used in the workflow. This would require maintenance of a config schema that matches the use of configs in the workflow.
This is a meta issue for tracking work around "composable configs"
Context
We don't have a centralized config schema for phylogenetic workflows because each pathogen runs different Augur commands and custom scripts that use different params. The config gets even more complicated when the workflow creates multiple builds (e.g. flu subtype x segment x time resolution). Since the workflows are authored by different people, we end up with varying config schemas that can be confusing to outside users. With the config file as the main UI for external users of workflows, we should make them easier to work with!
Documenting available config params and their default values
I don't think it's realistic to write and maintain detailed workflow config docs like we have for ncov, so I've been trying to find a way to have centralized documentation for config files.
Making it easy to overriding configs
With
nextstrain buildand the forthcoming workflows as programs, users can provide custom config files to override the default config params. This is relatively straightforward for single build workflows (as long as the config params are well documented). This can be tedious for multi-build workflows as discussed on Slack. The path forward here is less clear, but here are some related work around this:augur export v2augur#298 (although this issue is focused on the auspice config, there are similar ideas)Validating configs during the workflow
It'd be useful to get immediate feedback during the workflow run by validating the user's custom config file. This should flag missing required config params and config params in the config file that are not being used in the workflow. This would require maintenance of a config schema that matches the use of configs in the workflow.