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

metadata extensions #2777

Open
oliver-sanders opened this issue Apr 23, 2024 · 0 comments
Open

metadata extensions #2777

oliver-sanders opened this issue Apr 23, 2024 · 0 comments

Comments

@oliver-sanders
Copy link
Member

Rose configuration files can generate "artefacts" i.e. envvars, namelists and files.

Some projects (obvs talking about LFric) might want to generate more specific artefacts than Rose provides support for, e.g. domain-specific config files, or augment Rose metadata with more information to assist loaders. Currently the approach is to load in the Rose configuration (using metomi.rose.config or an equivalent implementation), then manipulate it within their own code. Ideally we would make it easier for such projects to inject their logic into the Rose application rather than having to hack it around the fringes.

Such extensions may require:

  • New metadata configurations (e.g. they might need to add a domain-specific metadata field).
  • New output formats (e.g. they may want to write out something other than a fortran namelist).

Main sticking points to the status-quo:

  • Adding new metadata is tricky (Rose objects in some way) so they have to use trigger-ignored metadata variables to achieve this.
  • Have to define a custom runtime to action this code.

Rose applications are fundamentally extendable so this should be perfectly possible, however, we would require a method for external plugins to access these capabilities i.e. some sort of plugin framework.

Note, the Rose GPL license would have implications on any imported extensions which may or may not be a roadblock.

Suggest a longer talk with the LFric folks before breaking ground.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant