How to improve the passage from developments to production
1. Tests in the git CI/CD pipelines
- unit tests
- benchmark tests
- functionality tests
- all codes should have some testing implemented, how detailed it varies according to the codes. In theory unit tests should also be provided.
- There are some codes that do not have tests - to be verified. mupage and km3sim?
2. Pre-release tests
- before tagging of a version, there should be a large-enough scale to test real application scenarios
- Large statistics, not too many files
- Do it on real detector (e.g. most recent production, in order to allow comparison) and ideal detectors.
- For example a few files of ORCA6, ARCA6, ORCA115, ARCA115. Full chain simulation (or data).
- need to define a "clean" simulation scheme with standard fixed inputs, and tests to be performed at the end.
- If a mayor release -> require complete simulation to be run
- if minor or patch -> basic chain (e.g. re-run only the specific step that is changed and check)
2.1 Pre-mass processing tests
- define a list of runs (that are OK from DQ standpoint) on which full simulation and data processing is performed.
- real "mass production" per file statistics and inputs
- provide data/mc
- ideally, all bugs should be discovered in the pre-release tests of softwares via the full chains and validatation
3. Mass production
- versioning (see later)
- add "run 0" MC (ideal conditions production)
Action points
- complete the simulation/documentation git
- write down explicitly the testing strategy and agree with software developers on details
- prepare "run 0" set