Problem
ICON4Py has no configuration format of it's own. This is the continuation of [(https://hackmd.io/a3kSeImZToy0FT9Cat4rmg)
Appetite
In one full cycle with 1 dev we expect to have config reading in place to the point that we can read the config for the integration test experiments from files.
Solution
Implement something like #936 on current main. Roughly keep the config file structure, and keep the implementation as light weight as possible.
Rabbit holes
- Any details of the configuration variables outside of what's needed for reading the test experiments from file
No-gos
- Any non-critical features that lock us into a heavy-weight config library (like omegaconf)
Progress
The checklist above is the author's, written at shaping. At the review of
11.08.2026 the current minimal config file looked like this:
geometry: {}
metrics: {}
interpolation: {}
vertical_grid:
num_levels: 10
topography:
config:
type: jablonowski_williamson
initial_conditions:
config:
type: jablonowski_williamson
prescribed_tendencies: {}
driver:
experiment_name: foo
profiling_options:
dtime: 10
start_of_simulation: 2020-01-01T00:00:00
start_of_timestepping: 2020-01-01T00:00:00
end_of_simulation:
type: numsteps
value: 5
Necessary Future Improvements, in the deck's own words:
- Don't make the user repeat values
- Enable externally developed components
Since the review
What closed the bet was #1391, the minimal config system, merged on 04.08.2026:
that is the point at which the integration test experiments could be read from
files, which is exactly what the appetite asked for.
The two future improvements above went their own ways. "Don't make the user
repeat values" became task-bbb138 and landed as #1412 on 31.08.2026. "Enable
externally developed components" has not been picked up. Rico's #1445, improving
the initial condition config, is open and was not bet at cycle 38 either --
his cycle-38 row is the config documentation, pitch-43b7a9.