When you intend to configure a set of similar jobs, e.g. experiments, it can be helpful to derive these configurations from more abstract and comprehensive meta-configurations. Two examples:
- conduct an experiment, where a set of values is tried for each parameter
- test or compile a piece of software for multiple platforms
A meta-configuration can specify lists of parameter values, so that each combination of parameters produces a configuration. Much like what Travis does: “test the package on julia-1.0, julia-1.3, and nightly, but also on Linux and MaxOS”.
MetaConfigurations.jl provides operations which derive configurations from more abstract meta-configurations. Moreover, it provides a unified interface to multiple configuration file formats, currently JSON and YAML.
How do you use configurations? Is a package about meta-configuration useful for you? How would you improve it?
I personally will use the package to boost my workflow of scientific experiments.