OmegaConf is proposing a general per-node provenance model to allow users to map a configuration node back to its origin. This is intended to support IDE features like 'go to definition', diagnostics, and tracking which merged source 'won' during configuration composition.
Instead of just tracking YAML line/column numbers, the model is designed to be abstract to support various sources including:
- Filesystem: Local YAML files.
- Hydra Sources: Packaged configs, plugin-backed sources, or composed configs.
- Python: Nodes created via
OmegaConf.create(). - Synthetic/Merge: Nodes created through operations like merging or manual mutation.
Each node may optionally carry metadata including kind (e.g., file, python, merge), source (path or URI), line, column, and span.