Allow less verbose testlist format
- Dominant language
- Python
- Stars
- 174
- Forks
- 225
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 14
Description
These are notes from discussions I had with @mvertens @jedwards4b and @gold2718 a few months ago, for which I seem to have never opened an issue.
@mvertens and I feel that the current xml-based testlist format used in CESM can be hard to work with. One particular aspect that's difficult is that a given test name (like `SMS.f10_f10_musgs.I2000CLM50Sp.cheyenne_intel.clm-default`) does not appear directly in the file, but instead is split into pieces over multiple lines. In addition, the verbosity of xml makes it harder to edit the testlist files by hand.
After some discussion, we decided that I should prototype a cfg-based testlist format. (Note that python has a built-in cfg file parser.) This would look like:
```cfg
[SMS.f10_f10_musgs.I2000CLM50Sp.cheyenne_intel.clm-default]
walltime: 0:50
memleak: 1.2
comment: "my comment"
categories: aux_clm, prealpha
[ERS.f10_f10_musgs.I2000CLM50Sp.cheyenne_intel.clm-default]
walltime: 0:50
categories: aux_clm
```
A few notes about the above:
1. For categories: it appears that python's Config file parser doesn't support list values itself, so you need to read the value into a string then use something like:
```python
[x.strip() for x in categories.split(',')]
```
2. I have indented options by a single space to make it easy to hide the options in your editor (in emacs: `M-1 C-x $`), so that you can easily see just the tests, one per line. This wouldn't need to be done, and I'm pretty sure the parsing doesn't care.
My plan is to implement this as an alternative test list format, so that for some time we could use either the xml or cfg-based formats, for backwards compatibility. I'm not sure when this will hit the top of my task list, though.
Contributor guide
Assessment
This issue has not been assessed yet.