← all records

Configuration continuation

pitch-370009 · in warm_bubble

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

  • Ongoing Work at the time of shaping
  • Understand the approach in #936

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.