Newer
Older
Modern HEP experiments (usually long timescale) are large distributed collaborations with several hundred people. The software project should be managed properly and the code quality is important.
Software development life cycle consists of
* Planning
* Analysis and Design
* Implementation
* Testing and Integration
* Maintenance
Best Practices in the open source communities:
* Building software -> CMake
* Source code control -> Git and Pull/Merge Request workflow
* Continuous integration -> GitHub Actions or GitLab CI
* Software distribution -> package management tools and apptainer containers
* Training and documentation -> sphinx