Skip to content

CREDIT init config location and per-realization file storage #322

Description

@danineamati

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:

credit init

Possible Solutions

  1. 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.

  2. 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.)

  1. No default path.
    Each user must choose their own adventure on where to place files.

Metadata

Metadata

Labels

enhancementNew feature or requestquestionFurther information is requested

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions