-
Notifications
You must be signed in to change notification settings - Fork 106
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
[feat] Enable YAML configuration files #3370
base: develop
Are you sure you want to change the base?
Conversation
c154779
to
72fe599
Compare
72fe599
to
2868c42
Compare
===================== | ||
|
||
One advantage of ReFrame's configuration is that it is programmable, especially if you are using the Python files. | ||
Since the configuration is loaded a Python module, you can generate parts of the configuration dynamically. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the configuration is loaded a Python module, you can generate parts of the configuration dynamically. | |
Since the configuration is loaded as a Python module, you can generate parts of the configuration dynamically. |
Since the configuration is loaded a Python module, you can generate parts of the configuration dynamically. | ||
|
||
The YAML configuration on the other hand is more static, although not fully. | ||
Code generation can still be used with the YAML configuration as it is treated as Jinja2 template, where ReFrame provides the following bindings: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code generation can still be used with the YAML configuration as it is treated as Jinja2 template, where ReFrame provides the following bindings: | |
Code generation can still be used with the YAML configuration as it is treated as a Jinja2 template, where ReFrame provides the following bindings: |
- ``sh(<command>)``: Retrieve the standard output of a shell command. | ||
The command must be successful. | ||
|
||
These are two examples YAML logging configuration that uses one of those bindings: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are two examples YAML logging configuration that uses one of those bindings: | |
These are two examples of YAML logging configuration that uses one of those bindings: |
|
||
Apart from Python, ReFrame's configuration can be specified in a YAML file. | ||
The advantage is a more compact configuration, but it's not fully programmable as is the Python configuration. | ||
Below is the same configuration file presetend above, but in YAML: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Below is the same configuration file presetend above, but in YAML: | |
Below is the same configuration file presented above, but in YAML: |
This PR introduces YAML configuration files and deprecates raw JSON configuration files.
Check the updated docs for more details:
Closes #3322.
Todos