EDM4hep Discussion
Zoom
EDM4hep Live Notes
==================
Date: October 8, 2024
Indico: https://indico.cern.ch/event/1465224/
Connected: Andre, Tao, Juan, Mateusz, Birgit, Brieuc, Juraj,
Apologies: Thomas, Frank, Leonhard
## Introduction and General Points
### Upcoming workshops / conferences
https://github.com/orgs/key4hep/projects/4/views/1
## Progress and discussion
## Podio
* https://github.com/AIDASoft/podio/pulls
* https://github.com/AIDASoft/podio/issues
* https://github.com/orgs/AIDASoft/projects/2/views/1
### Merged PRs
* Templated links between arbitrary datatypes ([#257](https://github.com/AIDASoft/podio/pull/257]))
* Use `enable_if` ot allow using containters of interfaces with object wrappers ([#683](https://github.com/AIDASoft/podio/pull/683))
* Use unique_ptr to manage one-to-one-relations in the Obj classes ([#689]( https://github.com/AIDASoft/podio/pull/689))
* GenericParameters.h: add missing clear and empty check for double map ([#692](https://github.com/AIDASoft/podio/pull/692))
* Some changes in the CI and testing
### Add a tool to merge several podio files into a single one ([#681](https://github.com/AIDASoft/podio/pull/681))
* [ ] Add metadata about which files were merged
### Make accessing single elements in empty parameter vectors return an empty optional [#694](https://github.com/AIDASoft/podio/pull/694)
* What is the desired behavior here?
* Empty value?
* Empty optional?
## EDM4hep
* https://github.com/key4hep/EDM4hep/pulls
* https://github.com/key4hep/EDM4hep/issues
* https://github.com/orgs/key4hep/projects/5
### Zenodo Batch, Author / Contributor list
https://github.com/key4hep/EDM4hep/pull/375
### New tag `v00-99-01`
* [release on github](https://github.com/key4hep/k4FWCore/issues/238)
### Merged PRs
#### Add read tests to ensure backwards compatibility
* https://github.com/key4hep/EDM4hep/pull/358
* Similar to what we do in podio to ensure we can truly read files written with older versions
* Pre-requisite for switching out links with templated links
* Test files for EDM4hep v00-99-01 + podio v01-01
#### add formatting and linting python in pre-commit
* https://github.com/key4hep/EDM4hep/pull/370
* Discussion about which parts of the configuration of different tools should be centralized and which parts should be package specific
* `ruff` configuration can be layered, i.e. can have different config files with different priority
* Major issue for linting: Gaudi is dynamically loaded
* Make formatting centralized and apply to all repos
* [ ] Need to have a dedicated discussion for python style (e.g. type annotations, etc.)
### [WIP] Switch to templated links and remove explicit declarations from yaml file
* https://github.com/key4hep/EDM4hep/pull/373
* Transparent reading of old (generated) link collections
* Some "schema evolution" code necessary
* Example of how adding a new link looks like at the moment
* Create a header with typedef
* Use `PODIO_DECLARE_LINK` to instantiate the necessary buffer creation code for a given type
* Make a new dedicated `links`(?) category in the YAML file?
* Yes, keeps EDM4hep self-contained
* [ ] Make a separate PR that introduces that
* Do we need schema evolution from non-templated links?
* Yes, we had a tagged version (`v00-99`) of EDM4hep with the non-templated links
## Converter & MarlinWrapper
* `IOSvc` support for MarlinWrapper?
* https://github.com/key4hep/k4MarlinWrapper/issues/202
* Do we need it? `IOSvc` is mainly for multithreading, but most processors are not threadsafe
* [ ] Can we change the segmentatoin fault to an error message?
## New Key4hep Release
* Release ready to be deployed, expected today
* Checking that spack builds latest tag for each package in Key4hep and FCC
## AoB
* Pick up putting repositories on zenodo
## Next meeting:
* ~~Oct 22, 2024, 09:00 ? During CHEP?~~
* November 5, 9:00 CET(!)