Context
In the new CLI (to be released, see branch v2/cli-tooling: https://github.com/NCAR/miles-credit/tree/v2/cli-tooling), we have that credit init, by default, will place the config file in the user's current working directory. It is possible that this works well for users that end up installing CREDIT through pip.
However, when installing as a developer, this yields config files in the main directory that are not necessarily ignored by git.
Illustrating the Issue
Consider the follow set up commands from https://miles-credit--306.org.readthedocs.build/en/306/getting-started.html:
git clone https://github.com/NCAR/miles-credit.git
cd miles-credit
git checkout v2/cli-tooling
pip install -e .
Then to run the cli:
Possible Solutions
-
Have the default path be the config folder.
Currently the config folder has many example configs. Could this be in miles-credit/config/presets or miles-credit/config/templates? If so, we can place the user configs in miles-credit/config or miles-credit/user/config which allows config/*.yml or config/user/* to be included in the gitignore.
-
Have the default path be above the miles-credit folder.
If we encourage developers to put the miles-credit folder under another folder (e.g., CREDIT), then we could have a project structure that looks like
CREDIT/ # New top level folder
- config/ # configuration yml files
- logs/ # crash reports or a pipe location for runs
- miles-credit/ # source code
- runs/ # tensor board outputs
- visualizations/ # plots
or, similar. We could imagine that various cli options can make these directories if they do not already exist. This allows for a unified way to handle files that occur per-realization of the pipeline modules (e.g., init, train, plot, etc.)
- No default path.
Each user must choose their own adventure on where to place files.
Context
In the new CLI (to be released, see branch
v2/cli-tooling: https://github.com/NCAR/miles-credit/tree/v2/cli-tooling), we have thatcredit init, by default, will place the config file in the user's current working directory. It is possible that this works well for users that end up installing CREDIT through pip.However, when installing as a developer, this yields config files in the main directory that are not necessarily ignored by git.
Illustrating the Issue
Consider the follow set up commands from https://miles-credit--306.org.readthedocs.build/en/306/getting-started.html:
Then to run the cli:
Possible Solutions
Have the default path be the
configfolder.Currently the config folder has many example configs. Could this be in
miles-credit/config/presetsormiles-credit/config/templates? If so, we can place the user configs inmiles-credit/configormiles-credit/user/configwhich allowsconfig/*.ymlorconfig/user/*to be included in the gitignore.Have the default path be above the
miles-creditfolder.If we encourage developers to put the
miles-creditfolder under another folder (e.g.,CREDIT), then we could have a project structure that looks likeor, similar. We could imagine that various
clioptions can make these directories if they do not already exist. This allows for a unified way to handle files that occur per-realization of the pipeline modules (e.g.,init,train,plot, etc.)Each user must choose their own adventure on where to place files.