Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should user be able to set the working directory (where the namelists are present)? #111

Open
agoscinski opened this issue Jan 30, 2025 · 4 comments
Labels
priority/nice-to-have Does not have high priority but would be nice to have

Comments

@agoscinski
Copy link
Collaborator

Right now we only use the rootdir as working directory. I consider here use cases where one wants to run an icon workflow with different namelists. So one would maybe run the same workflow but with different input data. In a future CI this could look like this

sirocco --working_dir ./use_case1
sirocco --working_dir ./use_case2

However thinking this through, all data can be specified as remote data, so one could just create two config files with different paths. The only files that have to be within the working directory are the namelists and we allow full modification of them through the config file. So the above example should be covered by having two config files

sirocco config_use_case1.yml
sirocco config_use_case2.yml

I think it still could be nice to have, but since we can cover it it is not important. I mainly opened the issue to think this through once.

@agoscinski agoscinski added the priority/nice-to-have Does not have high priority but would be nice to have label Jan 30, 2025
@leclairm
Copy link
Contributor

My view on this is actually quite opposite: I'd like that we consider the configuration as an isolated self-consistent set of text files contained in a single directory. I would argue for requiring the user to provide Sirocco with a config directory containing a sirocco.yaml file vs a config file from which we infer the rootdir and then the path to the other files that constitute the whole configuration. Essentially

> tree /path/to/config_dir
/path/to/config_dir
├── sirocco.yaml
├── ICON
│   ├── icon_master.namelist
│   └── NAMELIST_exclaim_ape_R02B04
└── preproc
    └── my_preproc_script.sh
> sirocco config_dir

instead of

> sirocco /path/to/config_file.yaml

Such a config dir can then naturally be added in a git repo or even be a git repo itself.

@agoscinski
Copy link
Collaborator Author

agoscinski commented Jan 31, 2025

The problem I see with specifying only the directory instead of the name of the config file is about how to detect the config file. Do we also require a hardcoded name like the icon namelist? Because I am not sure if we could implement an automatic detection of the yml file that does not go wrong for some cases in a way the user does not understand it.

@leclairm
Copy link
Contributor

Do we also require a hardcoded name like the icon namelist?

Yes that was my proposition in the comment: sirocco.yaml

@agoscinski
Copy link
Collaborator Author

agoscinski commented Jan 31, 2025

Okay! I think that would be okay for our user base since they already used to hardcoded names with the icon master namelist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority/nice-to-have Does not have high priority but would be nice to have
Projects
None yet
Development

No branches or pull requests

2 participants