Skip to content

Config merging improvements

Description

This MR aims to improve upon the existing config/fragment structure of the tdd. Previously, a section of a given config could include a single file fragment, e.g.

#config.yaml
{
    "file" : "path/to/a/fragment.json"
}

This is limited however. This MR allows us to instead do

#config.yaml
{
    "file" : ["path/to/a/fragment1.json", "path/to/a/fragment2.json"]
}

A key example of how this can clean up configs significantly can be seen in the GN3_dev.json config.

To really allow detailed merging to work, all configuration lists have now been converted to dictionaries. E.g, previously we could have two track collections like:

"tracks" : [
    {
    "output_name" : "tracks_ghost"
    ....
},
  {
    "output_name" : "tracks_dr"
    ....
},
]

This would now be

"tracks" : {
    "tracks_ghost" : {...}
    "tracks_dr" : {...}

}

Which allows us to more fully utilise the multi-config file merging.

The config merging is handled in athena, for now we ahve copied the relevent file to the tdd (FTagDumper/python/ConfigText.py). There is an open athena MR (athena!82948) to introduce this, at which point we will remove the local implementation.

I have produced a couple of scripts used to do some automatic config conversion, found here. They aren't perfect but can get the job done with minor corrections after.

Review checklist:

  • CI Passing
  • Comments addressed
  • Source branch is up to date with target
Edited by Nikita Ivvan Pond

Merge request reports

Loading