Re-usable configuration (fragments) support
- Dominant language
- C++
- Stars
- 14
- Forks
- 34
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 6
Description
This is a broad topic and partially addressed in what is proposed in https://github.com/key4hep/k4FWCore/pull/352.
The big picture is that this would make it a lot easier to re-use existing configuration snippets. (It would probably require some re-organization of existing things, like [CLDConfig](https://github.com/key4hep/CLDConfig) or [ILDConfig](https://github.com/iLCSoft/ILDConfig)). Having the possibility to simply do something that is *conceptually similar* to
```python
from CLDConfig.Tracking import TrackingSequence
# ... add to alg list in a format still to be decided
```
This will mainly make it possible for detector contacts to put together a "blessed" default sequence of how things should happen, which in turn would make it easier for
- e.g. dedicated studies comparing different concepts to use these (while still being able to add their algorithms at the end)
- validation to simply use those instead of having to redefine large parts
- tests of certain algorithms to only run the parts that are interesting for it (e.g. for tracking one could do the tracker hit digitization and then hand off without having to add tons of options to `CLDReconstruction.py` to interrupt the chain at certain points)
I don't have any real insights on how to best do this, but I wanted to raise this and also have a place to discuss / raise certain aspects of this whole feature.
Contributor guide
Research direction
Start by reading the approach proposed in pull request #352 and reviewing the existing configuration organization in CLDConfig and ILDConfig. Compare how current configuration snippets are assembled and identify the decisions the issue leaves open, including the fragment format and composition point. Done would require an agreed design and an implementation plan for reusable configuration fragments.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100