You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The configuration loading stage within DVSim is probably the most fragile part of DVSim. Small changes often result in unexpected behaviour. It's difficult to work out what fields are required as there is no clear schema.
There is a wildcard mechanism which allows internal reference to other configuration fields, environment variables, and embedded shell commands ("{eval_cmd} git status"). Due to #17 the evaluation of these wildcards is not commutative, so the evaluation order matters (ideally we would remove shell evaluations from the HJSON).
Proposed improvements:
Add unit tests to capture the existing behaviours
Separate the configuration loading to an independent stage.
Evaluate the wildcards as early as possible in the flow.
Introduce a clear schema for the config format - using pydantic to validate the config file format.
Several attempts have been made at refactoring DVSim and the configuration loading mechanism is generally where regressions are inadvertently introduced.
This is currently blocked because it's not yet possible to reliably refactor this. With #39 it's now possible to dump the deployment objects just prior to the scheduler. Which means we can determine if changes upstream introduce regressions - for example these config loading changes. Unfortunately the current effort in #35 does.
Activity
machshev commentedon Oct 29, 2025
This is currently blocked because it's not yet possible to reliably refactor this. With #39 it's now possible to dump the deployment objects just prior to the scheduler. Which means we can determine if changes upstream introduce regressions - for example these config loading changes. Unfortunately the current effort in #35 does.
machshev commentedon Oct 29, 2025
#46 should help unblock this by introducing a refactoring seam into the flow that we can work back from.