Rather than have config pre-processing steps modify the provided config, use namespaces for each subcomponent so it's clearer where information is coming from, in which order subcomponents must be run, and where a bug is (if information is missing).
Proposed alternative (courtesy @cmerrick ):
{:models {...} ;read from the input config file, normalized, and added here :database {...} ;read from either the CLI or a separate input config file :dep-graph {...} ;added when this step is run :generators {...} ;added when this step is run, probably keyed in the same way :models is, for consistency }
Rather than have config pre-processing steps modify the provided config, use namespaces for each subcomponent so it's clearer where information is coming from, in which order subcomponents must be run, and where a bug is (if information is missing).
Proposed alternative (courtesy @cmerrick ):
{:models {...} ;read from the input config file, normalized, and added here :database {...} ;read from either the CLI or a separate input config file :dep-graph {...} ;added when this step is run :generators {...} ;added when this step is run, probably keyed in the same way :models is, for consistency }