Closed Galileo-Galilei closed 3 years ago
Here are the points at stake here:
kedro
without kedro-mlflow
, it must run with kedro-mlflow
. The rationale on displaying dynamically the CLI commands to make projects commands available only after the user ran kedro mlflow init
adds some extra logic which breaks this principle. In fact, if someone makes some customisation to the configloader or the configuration loading logic, it is too restrictive to assume that the mlflow.yml
exists in conf/base
folder. ->Decision: remove dynmaic display and always display all projects commands at the root of a kedro project.mlflow.yml
(and not assume it is in necessarily in base) -> add an extra argument to kedro mlflow init
get_mlflow_config
mlflow.yml
should be created by default in conf/local
instead of conf/base
, because most of this configuration is expected to be overridden.
Description
Currently, the
kedro mlflow init
command creates the mlflow.yml configuration file to the hardcoded locationconf/base/mlflow.yml
. Some users may customize their ConfigLoader and do not have aconf/base
folder. In general, this tightens the plugin to the kedro template, which is a bad practice (it decreases modularity and extensibility).It would be better to create the configuration file based on ConfigLoader configuration.
Context
I used kedro-mlflow in a custom template hich does not have a conf/base folder, which (unnecessarily) prevents using the plugin.
Possible Implementation
Maybe create the file at
context.config_loader.conf_paths[0]
?